https://a-char.com/api/mcp by
signing in with your A-Char account or with an API key. The server is hosted, so there is nothing to
install; the MCP page has a first tool call over plain HTTP.
Authentication
The server accepts two credentials:- Sign in (OAuth): your MCP client opens a browser and you sign in with your A-Char account. There is no key to copy. This is the default.
- API key: create one under Account Settings → API Keys in A-Char (click your name at the bottom
of the sidebar) and pass it in the
Authorization: Bearerheader. Pick only the scopes the assistant needs; the server lists only the tools they allow. Use this to choose the scopes yourself, for clients without OAuth support, and for autonomous agents.
Connect your client
- Claude Code
- Claude
- Cursor
- Codex
- Grok Bot
- VS Code
- Other
If you have connected A-Char in Claude, Claude Code already has it when you are
signed in with the same Claude account. Run Then sign in with your A-Char account: run Add The Claude Code documentation covers MCP servers in
general.
/mcp and it is listed as claude.ai A-Char; there is
nothing to add.Otherwise, add the server:/mcp, pick a-char and choose Authenticate.--scope user to the first command to use A-Char in every project, not just this one.To use an API key instead of signing in, pass it when adding the server:get_time_off_balances tool with one line per policy, or says you have no
policies when HR has not assigned you any yet. Anything else is one of the failures below.
Building autonomous agents
An agent passes an API key as the bearer credential straight to the hosted server; it speaks Streamable HTTP, so any MCP SDK or plain HTTP works. The MCP page has a completetools/call
request with its response.
Do not embed API keys in code. Provide them to the agent through a secrets vault or an environment variable,
and create a dedicated key per agent with only the scopes it needs, so you can revoke it independently.
If it fails
401 Unauthorized
The server rejected the credential. When signed in, remove and re-add the server so the client runs sign-in
again. With an API key, check it in Account Settings → API Keys: it must not be revoked or expired, and
must be copied without extra spaces.
Sign-in finishes, but the connection fails
Your A-Char account belongs to more than one organization, and sign-in cannot yet choose between them. Use an API key, which is created inside one organization.Claude connector says Couldn't reach the MCP server
Disconnect A-Char in Claude’s Settings → Connectors and connect it again. Claude caches a failed authorization attempt, so a stale failure
persists until you reconnect.
A tool is missing
An API key lists only the tools its scopes allow:time-off:read for reading, time-off:write for booking,
changing and cancelling, time-off:review for approving and declining. Approving and declining also need you
to be an approver. Reconnect after changing a key’s scopes, since clients cache the tool list.
406 Not Acceptable
Plain HTTP requests must send Accept: application/json, text/event-stream. MCP SDKs do this for you.
Changes not taking effect
After editing your client’s MCP configuration, restart the client completely.Related
- MCP: a first tool call over plain HTTP and how the server behaves.
- Tools: every tool’s parameters and the
tools/listcatalog. - Claude connector: step-by-step setup in Claude.
- Authentication: API keys, scopes and roles.