inference.sh
REMOTE · API.INFERENCE.SH · SCANNED SEP 20
run any ai model. compose agents, stack knowledge, connect tools. one api, pay per run.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3744 tokens (~106/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage91
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 73% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the inference.sh MCP server?
inference.sh is a hosted endpoint at https://api.inference.sh/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.inference.sh
claude mcp add --transport http ac-inference-sh-mcp 'https://api.inference.sh/mcp'
{
"mcpServers": {
"ac-inference-sh-mcp": {
"url": "https://api.inference.sh/mcp"
}
}
} {
"servers": {
"ac-inference-sh-mcp": {
"type": "http",
"url": "https://api.inference.sh/mcp"
}
}
} [mcp_servers.ac-inference-sh-mcp] url = "https://api.inference.sh/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ac-inference-sh-mcp": {
"type": "remote",
"url": "https://api.inference.sh/mcp",
"enabled": true
}
}
} openclaw mcp add ac-inference-sh-mcp --url 'https://api.inference.sh/mcp' --transport streamable-http
mcp_servers:
ac-inference-sh-mcp:
url: "https://api.inference.sh/mcp" {
"McpServers": {
"ac-inference-sh-mcp": {
"Transport": "http",
"Url": "https://api.inference.sh/mcp"
}
}
} assistant mcp add ac-inference-sh-mcp -t streamable-http -u 'https://api.inference.sh/mcp'
{
"mcpServers": {
"ac-inference-sh-mcp": {
"type": "http",
"url": "https://api.inference.sh/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 19 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 18 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 17 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 16 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 15 Sept 26 +1
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 14 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 13 Sept 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Probed https://api.inference.sh/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=inference.sh | CN=WE1,O=Google Trust Services,C=US | 26 Jul 2026 | 24 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 3e3a8527f7bacd920e7d0e5398f32418 |
| SANs: inference.sh, *.inference.sh | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.inference.sh. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| sh. | present | 55297 | 8 | Verified |
| inference.sh. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
WWW-Authenticate challenge Bearer resource_metadata="https://api.inference.sh/.well-known/oauth-protected-resource"
Bearer resource_metadata="https://api.inference.sh/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| content-security-policy | default-src 'none'; frame-ancestors 'none' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| www-authenticate | Bearer resource_metadata="https://api.inference.sh/.well-known/oauth-protected-resource" |
Protected resource metadata
| Document | https://api.inference.sh/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://api.inference.sh |
| Authorisation server | https://api.inference.sh |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.inference.sh/mcp | Verified | 200 | |
| http (plaintext) | http://api.inference.sh/mcp | HTTPS enforced | 301 | https://api.inference.sh/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
app_get Get App Details ~37
Get detailed app info including input/output schemas and version history
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | App ref: namespace/name or namespace/name@version |
No output schema declared.
No examples provided.
app_list List Apps ~50
Search and filter available apps on inference.sh
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| cursor | string | – | – |
| limit | integer | – | – |
| query | string | – | Search by name or description |
No output schema declared.
No examples provided.
app_run Run App ~79
Run an app on inference.sh. Creates a task that executes the app with the given input.
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | App ref: namespace/name or namespace/name@version |
| function | string | – | Function name for multi-function apps |
| infrastructure | string | – | – |
| input | object | yes | App input matching the app's input schema |
No output schema declared.
No examples provided.
artifact_asset_delete Delete Artifact Asset ~71
Permanently delete one file stored beside an artifact. Anything on the page still pointing at it stops loading, so delete only a file nothing references.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
| asset_id | string | yes | Asset id, from artifact_asset_list |
No output schema declared.
No examples provided.
artifact_asset_list List Artifact Assets ~52
List the files stored beside an artifact, with the URL each is referenced by and what the artifact is using against its budget.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
No output schema declared.
No examples provided.
artifact_asset_upload Upload Artifact Asset ~173
Store an image, video, audio file, font or PDF beside an artifact and get back the URL its page references it by. Use this instead of a data: URI for anything sizeable: a data URI costs a third more than the bytes it carries, and a page has a 16 MiB ceiling. The page must be published with the "assets" capability or its CSP will refuse to load the file. Uploading the same bytes twice returns the asset already there.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
| content | string | yes | The file's bytes, base64-encoded |
| content_type | string | – | MIME type; guessed from the filename when omitted |
| filename | string | – | What to call the file, e.g. chart.png |
No output schema declared.
No examples provided.
artifact_comments Read Artifact Comments ~89
Read the comment threads people left on an artifact. Each thread says whether it was sent to you: you may reply to and resolve those, and only those. Threads not sent to you are other people's conversations — read them for context, mention them to the user if they need action, but do not answer them.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
No output schema declared.
No examples provided.
artifact_get Get Artifact ~70
Get an artifact's metadata and page source by id, short id, or namespace/name[@version]
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
| include_content | boolean | – | – |
| version | string | – | Optional version id or short id (default latest) |
No output schema declared.
No examples provided.
artifact_guidance Artifact Guidance ~119
Everything needed to write a good artifact page, assembled in one call: the page contract plus the skills that carry the detail, resolved from the registry so they are always the current version. Call this BEFORE writing a page. Narrow it with topics; omit topics for all of them.
| Name | Type | Req | Description |
|---|---|---|---|
| topics | array | – | Which parts to include. "design" is always worth having; "capabilities" when the page takes input, remembers anything or knows its viewer; "diagrams" when it has a flow or chart. Omit for all three. |
No output schema declared.
No examples provided.
artifact_list List Artifacts ~48
List artifacts you own or that were shared with you, newest first
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| limit | integer | – | – |
| search | string | – | Search over title and description |
No output schema declared.
No examples provided.
artifact_publish Publish Artifact ~1,577
Publish a self-contained HTML(+JS) or Markdown page as an artifact: a live page at a private URL that can be shared with a team, an org, or publicly, and that updates in place when published again. Pass artifact_id (or reuse the same name) to publish a new version. Returns the artifact id, url, and version. ## Before you write the page Load the skill for what you are about to build, with whichever skill tool this session has (`skill_get`, `skill_use`, or `belt skill use infsh/<name>`): - `belt-artifact-design` — always. Treatment, the injected design tokens, the three theme states, the traps that fail silently. - `belt-artifact-capabilities` — when the page takes input, remembers anything, knows who is viewing, or shows a file stored beside it. - `belt-artifact-diagrams` — when it has a flow, an architecture, a timeline or a chart. They are the current version at all times. This description is only the contract. ## When to use an artifact Use one when terminal text is the wrong medium: a dashboard from data you already pulled, a walkthrough of a change with annotated diffs, several options side by side, sliders to tune values, a checklist you keep updating while a long task runs, or anything a person will look at, interact with, or send to a teammate as a link. Don't use one for a short answer, a code snippet, or advice the user will act on immediately in the terminal. ## Page contract - Write the PAGE CONTENT only. It is wrapped at publish time in <!doctype html> + <head> (charset, viewport, <title>, favicon, a reset, and the inference.sh design tokens) + <body>. Put your own <style> and <script> at the top of the content. A full document (starting with <!doctype> or <html>) is accepted too and keeps its own <head>. - Everything must be self-contained: inline all CSS and JS, embed images as data: URIs, draw diagrams as mermaid, inline SVG or HTML/CSS. There is no backend, no routes, no relative links; use in-page anchors. - CSP allowlist (enforced, failures ar…
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | – | Existing artifact id/ref to update in place |
| capabilities | array | – | Runtime capabilities the page may use. "db" gives it a small store so it remembers what people do on it; "user" tells it who is viewing; "assets" lets it show images, video, fonts or PDFs stored besi… |
| content | string | yes | Page source: HTML content (or full document) or Markdown. Self-contained. |
| content_encoding | string | – | Set to "base64" and base64-encode content. Required in practice: the edge firewall rejects request bodies containing raw HTML tags such as <script>. |
| description | string | – | One sentence shown under the title |
| favicon | string | – | One or two emoji used as the tab icon |
| image | string | – | URL of a cover image for the gallery card and viewer header |
| label | string | – | Optional label for this version |
| name | string | – | Optional URL slug; derived from title when omitted |
| title | string | yes | Short distinctive name for the page (2-4 words) |
| type | string | – | – |
| visibility | string | – | Who can open the page (default private). Only widen when asked. |
No output schema declared.
No examples provided.
artifact_reply Reply To Artifact Comment ~118
Reply into one comment thread on an artifact. Only works on a thread that was sent to you. Your reply is shown as written by you on behalf of the person who sent the thread. Say what you changed, briefly; if you made the change, resolve the thread afterwards.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
| text | string | yes | The reply. Plain text, a sentence or two. |
| thread_id | string | yes | Id of the thread to reply into, from artifact_comments |
No output schema declared.
No examples provided.
artifact_resolve Resolve Artifact Comment ~105
Mark a comment thread resolved once you have acted on it: the change is made, or you established none was needed. Only works on a thread that was sent to you. Do not resolve feedback you did not act on, and leave a thread open while the person still needs an answer from you.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact id, short id, or namespace/name ref |
| thread_id | string | yes | Id of the thread to resolve, from artifact_comments |
No output schema declared.
No examples provided.
knowledge_create Create Knowledge Entry ~60
Create a new knowledge entry (concept, observation, preference, reference, etc.)
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Entry content (markdown) |
| description | string | – | Short description |
| name | string | yes | Entry name |
| type | string | – | – |
No output schema declared.
No examples provided.
knowledge_delete Delete Knowledge Entry ~24
Delete a knowledge entry by ID
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Entry ID |
No output schema declared.
No examples provided.
knowledge_get Get Knowledge Entry ~35
Get detailed information about a knowledge entry by namespace/name or ID
| Name | Type | Req | Description |
|---|---|---|---|
| ref | string | yes | Entry ref: namespace/name or ID |
No output schema declared.
No examples provided.
knowledge_list List Knowledge ~43
List your knowledge entries, optionally filtered by type
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| limit | integer | – | – |
| type | string | – | Filter by knowledge type |
No output schema declared.
No examples provided.
knowledge_search Search Knowledge ~48
Search your knowledge entries by query
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| limit | integer | – | – |
| query | string | yes | Search query |
| type | string | – | Filter by type |
No output schema declared.
No examples provided.
mcp_connect Connect to MCP Server ~41
Initiate a connection to an MCP server. For OAuth servers, returns an authorization URL to open in a browser.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Server slug |
No output schema declared.
No examples provided.
mcp_disconnect Disconnect from MCP Server ~25
Remove connection to an MCP server
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Server slug |
No output schema declared.
No examples provided.
mcp_get Get MCP Server Details ~28
Get details about an MCP server including connection status
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Server slug |
No output schema declared.
No examples provided.
mcp_list List MCP Servers ~54
Browse available MCP servers that can be connected to
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category |
| cursor | string | – | – |
| featured | boolean | – | Show only featured servers |
| limit | integer | – | – |
No output schema declared.
No examples provided.
mcp_run Call MCP Tool ~58
Call a tool on a connected MCP server. The server must be connected first via mcp_connect.
| Name | Type | Req | Description |
|---|---|---|---|
| input | object | – | Tool input arguments |
| slug | string | yes | slug/tool format (e.g. 'linear/list_issues') |
No output schema declared.
No examples provided.
mcp_search Search MCP Servers ~39
Search available MCP servers by query
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| limit | integer | – | – |
| query | string | yes | Search query |
No output schema declared.
No examples provided.
mcp_tools List MCP Server Tools ~54
List available tools on a connected MCP server, or get details for a specific tool
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Server slug (e.g. 'linear') or slug/tool (e.g. 'linear/list_issues') |
No output schema declared.
No examples provided.
skill_files List Skill Files ~33
List supplementary files for a skill (references, scripts, etc.)
| Name | Type | Req | Description |
|---|---|---|---|
| ref | string | yes | Skill ref: namespace/name |
No output schema declared.
No examples provided.
skill_search Search Skill Store ~47
Search the public skill store
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category |
| cursor | string | – | – |
| limit | integer | – | – |
| query | string | yes | Search query |
No output schema declared.
No examples provided.
skill_store Browse Skill Store ~52
Browse approved skills in the public skill store
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by category |
| cursor | string | – | – |
| featured | boolean | – | Show only featured skills |
| limit | integer | – | – |
No output schema declared.
No examples provided.
skill_upload Upload Skill ~83
Create or update a skill with SKILL.md content and optional supporting files
| Name | Type | Req | Description |
|---|---|---|---|
| allowed_tools | string | – | Comma-separated list of allowed tools |
| content | string | yes | SKILL.md body content (markdown) |
| description | string | – | Short description |
| files | array | – | Supporting files (references, scripts) |
| name | string | yes | Skill name |
No output schema declared.
No examples provided.
skill_use Use Skill ~63
Fetch a skill's assembled SKILL.md content. Tries the inference.sh store first, falls back to GitHub. Returns the full skill content for the agent to consume.
| Name | Type | Req | Description |
|---|---|---|---|
| ref | string | yes | Skill ref: namespace/name, or github.com/user/repo URL |
No output schema declared.
No examples provided.
skill_view View Skill File ~43
View a specific supplementary file from a skill's manifest
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | File path within the skill |
| ref | string | yes | Skill ref: namespace/name |
No output schema declared.
No examples provided.
task_cancel Cancel Task ~39
Cancel a running or queued task
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Force kill immediately instead of graceful shutdown |
| task_id | string | yes | Task ID |
No output schema declared.
No examples provided.
task_get Get Task ~26
Get status and output of a task
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | Task ID |
No output schema declared.
No examples provided.
task_list List Tasks ~36
List your tasks on inference.sh
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| limit | integer | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
task_logs Get Task Logs ~33
Get execution logs for a task
| Name | Type | Req | Description |
|---|---|---|---|
| log_type | string | – | – |
| task_id | string | yes | Task ID |
No output schema declared.
No examples provided.
What is the inference.sh MCP server?
inference.sh is an MCP server listed in the public MCP registry as ac.inference.sh/mcp. run any ai model. compose agents, stack knowledge, connect tools. one api, pay per run. This page covers its hosted endpoint (https://api.inference.sh/mcp).
Is the inference.sh MCP server safe to use?
inference.sh scores 91 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the inference.sh MCP server expose?
inference.sh exposes 35 tools: app_get, app_list, app_run, artifact_asset_delete, artifact_asset_list, and 30 more. Their descriptions and schemas cost roughly 3,552 tokens of context every time the server is loaded.
Does the inference.sh MCP server require authentication?
Yes. inference.sh asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the inference.sh MCP server still maintained?
inference.sh is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.