Documentation
From an API you own to a live MCP server, step by step.
Quick start
Everything below happens in the web console — sign up, click "New project", and follow the three steps. No API key required.
-
Import your API
Bring an OpenAPI spec URL, a curl command or a Postman collection — Invokera converts it into typed MCP tools.
-
Verify domain ownership
Prove that you own the API's domain with a DNS TXT record or a well-known file.
-
Publish
Go live: your project gets an MCP endpoint, a REST endpoint and an AI-readable landing page.
What success looks like
Four moments from a real project, so you know you are on track. See the finished result live: the Invokera Status demo project.
Three ways to import
OpenAPI (URL)
Paste a public OpenAPI/Swagger spec URL into the console's OpenAPI tab — the fastest and most complete path.
curl
Paste a working curl command into the console's curl tab — Invokera derives a typed tool from it. For example:
curl https://api.example.com/v1/users -H "Authorization: Bearer KEY"
Postman
In Postman, export your collection as Collection v2.1 JSON, then paste the JSON into the console's Postman tab.
Troubleshooting domain verification
Verification looks for a TXT record at _invokera-challenge.<your-domain> (or a file at /.well-known/invokera-challenge.txt). A challenge is valid for 72 hours and allows up to 30 checks. Common failures:
| Symptom | Likely cause | What to do |
|---|---|---|
| "TXT record not found" even though you added it | Most DNS panels (Cloudflare, Aliyun, Tencent Cloud, GoDaddy) append your domain to the record name automatically — entering the full name creates _invokera-challenge.example.com.example.com. | Enter only _invokera-challenge as the record name/host. Use the full name only if your panel explicitly asks for an FQDN. |
| "Value mismatch" although the token looks right | The value was saved with extra quotes or whitespace — some panels keep pasted quotes as part of the value. | Paste the token exactly, without surrounding quotes or spaces; the panel adds its own quoting if needed. |
| Record added but verification still fails | DNS changes can take a few minutes (sometimes longer) to propagate. | Wait a few minutes and check again. You can confirm with: nslookup -type=TXT _invokera-challenge.<your-domain> |
| You added the record for a subdomain like api.example.com | Verification targets the registrable domain (eTLD+1), e.g. example.com — not the subdomain. | Create the TXT at _invokera-challenge.example.com. On a hosting platform's shared subdomain, use the .well-known file method instead. |
| "Challenge expired" or "too many attempts" | Each challenge is valid for 72 hours and allows up to 30 checks. | Start a new challenge from the project page and update the DNS record (or file) with the new token. |
Connect via MCP
Claude Code
The fastest way to connect — run one command in your terminal:
claude mcp add --transport http your-project https://invokera.com/r/your-project --header "Authorization: Bearer inv_YOUR_TOKEN"
Success check: ask a question in the chat — if you can see your tool names, you're connected.
Claude Desktop
Add your project to claude_desktop_config.json using the streamable HTTP endpoint and your endpoint token:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"your-project": {
"type": "http",
"url": "https://invokera.com/r/your-project",
"headers": { "Authorization": "Bearer inv_YOUR_TOKEN" }
}
}
}
After editing the file for your OS, restart Claude Desktop for the change to take effect.
Success check: ask a question in the chat — if you can see your tool names, you're connected.
Cursor
Create .cursor/mcp.json at the root of your project with the same JSON shape:
{
"mcpServers": {
"your-project": {
"type": "http",
"url": "https://invokera.com/r/your-project",
"headers": { "Authorization": "Bearer inv_YOUR_TOKEN" }
}
}
}
Success check: ask a question in the chat — if you can see your tool names, you're connected.
REST
No MCP client? Every project also exposes a self-describing REST endpoint:
curl https://invokera.com/v1/your-project/tools -H "Authorization: Bearer inv_YOUR_TOKEN"
Automation / CI
Platform API keys (ik_) for managing projects from scripts are not yet available for self-serve issuance. If you need automation or CI integration, please contact us and we will enable one for your account. A call will look like this:
curl -X POST https://invokera.com/api/v1/projects -H "Authorization: Bearer ik_YOUR_API_KEY" -H "Content-Type: application/json" -d '{"specUrl":"https://api.example.com/openapi.json"}'
FAQ
My call fails with an error code — what does it mean?
MCP errors carry a JSON-RPC code plus an HTTP status. The frequent ones:
| Code | Meaning | Fix |
|---|---|---|
-32001 (HTTP 404) |
No MCP endpoint at this slug — the project doesn't exist or the URL is misspelled. | Check the endpoint URL against the project page; the slug must match exactly. |
-32002 (HTTP 401) |
Missing or invalid bearer token. | Send Authorization: Bearer inv_… with your project token; re-copy it from the console if unsure. |
-32005 (HTTP 403) |
The project isn't published yet — draft projects can't be called even with a valid token. | Verify domain ownership and publish the project first. |
-32004 (HTTP 409) |
The project has no enabled tools. | Enable at least one tool in the console, then call again. |
-32003 (HTTP 403) |
The tool set has been suspended by the platform. | Contact support if you believe this is a mistake. |
Domain verification keeps failing — what should I check?
DNS TXT records can take a while to propagate — wait a few minutes and check again. Verification targets the registrable domain (eTLD+1), not the subdomain. If your API lives on a hosting platform's subdomain, use the .well-known file method instead.
What is the difference between inv_ and ik_ tokens?
inv_ endpoint tokens only let callers invoke your published tools. ik_ platform API keys manage your account and projects — never hand them to agents.
How do I rotate an endpoint token?
Open the project in the console and use "Rotate token". The old token stops working immediately, so update your agents right after.
I lost my invoke token — how do I get it back?
Tokens are never shown again. On the project page use "Rotate token": you get a fresh token immediately and the old one stops working — update every client that used it.
Claude is connected but sees no tools — what's wrong?
Usually one of three things: the project has no enabled tools (enable them in the console); the client wasn't fully restarted after editing its config (Claude Desktop needs a complete restart); or the endpoint URL / token is wrong — run the test call in the console to rule out the server side.