The complete developer reference for CharmIQ's MCP surface — what's exposed, how it's authenticated, and which server to reach for.
|
|
/mcp | list_servers — runtime catalog of every available server and tool | |
/mcp/vfs | ||
/mcp/action | ||
/mcp/agent | ||
/mcp/application | ||
/mcp/chat | ||
/mcp/collection | ||
/mcp/company | ||
/mcp/context | ||
/mcp/docs | ||
/mcp/generation | ||
/mcp/git | ||
/mcp/note | ||
/mcp/share | ||
/mcp/usage | ||
/mcp/workspace | ||
/mcp/echo | echo, echo_transform, echo_error) for verifying connectivity |
https://api.charmiq.ai. The base URL https://api.charmiq.ai/mcp exposes a single list_servers tool that returns the same table above, plus the exact list of tools each server provides — the easiest way to discover what's available at runtime instead of pinning it at build time.For Developers — The Workspace server is currently routable but not advertised by the root discovery endpoint. Treat it as a stable URL you call directly rather than something list_serverswill return.
/.well-known/oauth-authorization-server./oauth/register (RFC 7591) the first time, then reuses that client./mcp. Full reference — endpoints, scopes, lifetimes, server-to-server credentials — lives in MCP Authentication.charmiq:// URI Schemecharmiq:// URIs. Each server documents the scopes its tools accept.charmiq://{scope}/{id}[?format=...&version=...]
workspace | |
charm | |
chat | |
folder | |
source | |
file |
charmiq:// URI:Web: https://team.charmiq.ai/source/wGPmxb8DN3kgivtbpYSF MCP: charmiq://source/wGPmxb8DN3kgivtbpYSF
noteId; pass it as parentId to add another Note.richtext | charmiq://workspace/…, charmiq://charm/…, charmiq://chat/… | |
folder | charmiq://folder/… | |
asset | charmiq://file/… |
{ dependentType, dependentId }). Others accept bare identifier strings — extract the {id} portion from the URI. Each tool's description says which.# After OAuth, you have an access token. Call list_docs: curl -X POST https://api.charmiq.ai/mcp/docs \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_docs", "arguments": {} } }'
structuredContent.docs array with { slug, name, description } for each documentation page. Pick one and call read_doc with that slug to get the full Markdown.content[] (text) array and a structuredContent object with the typed result. Build against structuredContent.?version=N and ?format=markdown|plain|html query parameters on the URI. Defaults depend on document type.list_servers once at startup and reflect its output in your application's capability map. Never hard-code which servers exist.charmiq:// URIs as opaque. Don't parse them by hand — the format is stable but the scopes will grow. Pass URIs as strings to tools that support their scope.Docs as a smoke test. It's read-only, it costs nothing, and it works on every account. If it works, your OAuth flow works.