Connecting an MCP client
The oHallo MCP server is a standard Streamable HTTP server. Any MCP client that speaks the HTTP transport connects to it directly: give the client the endpoint URL and an Authorization header carrying your API key. This page covers the client configuration for that, the packaged Claude Desktop extension, and how a coding agent pulls current oHallo documentation from Context7.
Transport profile
Section titled “Transport profile”| Property | Value |
|---|---|
| Transport | Streamable HTTP |
| Endpoint | POST https://api.ohallo.eu/api/mcp |
| Client transport type | http, which Claude Code also accepts spelled out as streamable-http |
| Authentication | Authorization: Bearer sf_live_v1_... |
| Required request headers | Content-Type: application/json and Accept: application/json, text/event-stream |
| Response shape | A single JSON body per request |
| Session handling | Stateless. Each request stands on its own, so a client can reconnect or retry at any point |
MCP-Protocol-Version header | Optional. The version is negotiated at initialize; sending a supported value on later requests is also accepted |
The stateless design keeps client configuration down to two values, the URL and the header. Authentication is a static Bearer header rather than an OAuth flow, so a client is connected on its first call.
Claude Code
Section titled “Claude Code”claude mcp add --transport http ohallo https://api.ohallo.eu/api/mcp \ --header "Authorization: Bearer sf_live_v1_..."| Flag | Effect |
|---|---|
-t, --transport | Transport type: stdio, sse, or http. Defaults to stdio, so http is required here |
-H, --header | Sets a request header. Repeat the flag for more than one header |
-s, --scope | Where the entry is stored: local (default), user, or project |
Use --scope user to make the server available in every project on the machine. --scope project writes the entry to .mcp.json in the project root, which is normally committed, so keep a literal key out of that scope or reference it through an environment variable (see below).
Confirm the connection with claude mcp list, which health-checks each configured server, and inspect a single entry with claude mcp get ohallo.
Client configuration file
Section titled “Client configuration file”Clients that keep MCP servers in a config file take the same three inputs: the transport type, the URL, and the headers. This is the shape Claude Code writes to .mcp.json, and it maps directly onto the equivalent block in other Streamable HTTP clients:
{ "mcpServers": { "ohallo": { "type": "http", "url": "https://api.ohallo.eu/api/mcp", "headers": { "Authorization": "Bearer sf_live_v1_..." } } }}For a .mcp.json that is shared with a team, keep the key in the environment and reference it. Claude Code expands ${VAR} and ${VAR:-default} in the url, headers, command, args, and env fields:
{ "mcpServers": { "ohallo": { "type": "http", "url": "https://api.ohallo.eu/api/mcp", "headers": { "Authorization": "Bearer ${OHALLO_API_KEY}" } } }}A variable that is unset is reported as a warning against that server in claude mcp list, and project-scoped servers are held at “Pending approval” until they are approved in an interactive session.
Claude Desktop extension
Section titled “Claude Desktop extension”For Claude Desktop, oHallo publishes a packaged extension at ohallo.ai/extensions. Open the downloaded .mcpb file with Claude Desktop to install it, then enter your API key when prompted. The server URL is pre-filled with the production endpoint.
The extension is a thin stdio-to-HTTP proxy: Claude Desktop talks to it over stdio, and it forwards tools/list and tools/call to https://api.ohallo.eu/api/mcp verbatim with your key attached. All tool definitions live server-side, so tools added to the oHallo MCP server become available in Claude Desktop as soon as they ship, and the installed extension keeps working unchanged.
Verifying the connection
Section titled “Verifying the connection”The handshake is a plain HTTP request, so curl is enough to prove the key and the endpoint before any client is configured. Send both media types in Accept, which is what the Streamable HTTP transport requires and what MCP client libraries send by default:
curl -sS https://api.ohallo.eu/api/mcp \ -H "Authorization: Bearer sf_live_v1_..." \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'A successful call returns the tool catalogue in result.tools. Transport-level failures arrive as HTTP status codes with a JSON-RPC error body, ahead of any tool dispatch:
| Status | Cause |
|---|---|
401 | The API key is missing, malformed, expired, or revoked. The body carries error_type: authentication_error |
406 | The Accept header must list both application/json and text/event-stream |
400 | The MCP-Protocol-Version header names a version outside the supported set |
Errors raised by a tool itself, including permission_denied for a missing scope, come back inside a successful JSON-RPC response. See Errors for that shape.
Scopes apply to every tool
Section titled “Scopes apply to every tool”The key you hand the client carries its scopes into every tool call, so an MCP client can do exactly what the same key can do over REST. Grant kb:read and conversations:read for a client that answers questions from your knowledge base and conversation history; add the matching :write scopes only when the client should act. A tool call that lacks its required scope returns permission_denied and leaves your data untouched. The full catalogue is in Authentication.
A key can also be restricted to a single brand or workspace, which is the cleanest way to point a client at one slice of your account.
oHallo documentation on Context7
Section titled “oHallo documentation on Context7”The oHallo developer documentation is indexed on Context7, so a coding agent with the Context7 MCP server configured can pull current oHallo reference material into its own context without being handed the pages by a person.
| Field | Value |
|---|---|
| Library ID | /llmstxt/developers_ohallo_ai_llms-full_txt |
| Source | https://developers.ohallo.ai/llms-full.txt |
Reference the library ID directly to skip the resolution step:
Using context7 library /llmstxt/developers_ohallo_ai_llms-full_txt,show how to authenticate an API key request and list conversations.An agent without Context7 can read the same material over HTTP. Starlight publishes three machine-readable views of this site:
| URL | Contents |
|---|---|
https://developers.ohallo.ai/llms.txt | Index that points at the two full-text variants |
https://developers.ohallo.ai/llms-full.txt | The complete documentation in a single file |
https://developers.ohallo.ai/llms-small.txt | A compact variant with non-essential content removed, for smaller context windows |