MCP Server

MCP quickstart

Connect an AI assistant to Harny's MCP server in four steps, then store and recall your first memory.

Copy page
View as Markdown

Step 1: Get a key

You need a key before the assistant can reach Harny. There are two ways to get one:

  • No-account setup. If your coding agent can run commands, have it follow https://harny.ai/auth.md. One command makes the app, saves its key in .env, and prints a claim link you open later to take ownership.
  • Console. The console creates app keys.

Keys have two kinds. An app key starts with fsa_ and belongs to you, the developer: it makes people and manages the app. A person's key starts with fsk_ and opens the memory of one person only. The table below says which one each tool needs.

Step 2: Add the server to your assistant

The MCP server address is https://api.harny.ai/v1/mcp/mcp. It uses Streamable HTTP. Without an Authorization header, it lists only provision_app. Add your key to see the other tools. The key goes in the Authorization header shown in the lines below, after the word Bearer. Replace $HARNY_USER_KEY with the person's key you saved.

Claude Code

claude mcp add --transport http harny https://api.harny.ai/v1/mcp/mcp --header "Authorization: Bearer $HARNY_USER_KEY"

Cursor

Add this to mcp.json:

{"mcpServers": {"harny": {"url": "https://api.harny.ai/v1/mcp/mcp", "headers": {"Authorization": "Bearer ${env:HARNY_USER_KEY}"}}}}

The server accepts bearer keys and sign-in tokens. This quickstart uses a key; how it works explains sign-in.

Step 3: Ask the assistant to call describe

Ask the assistant: "Call describe." This is the first call an assistant should make. It returns what Harny is and the tools this key may call, with their schemas. describe needs any key.

Step 4: Store and recall a first memory

Use the example cast: Nadia at Acme, user id demo-user. Use a person's key (fsk_) for both calls. Calls are scoped to the key's user.

  1. Ask the assistant to call ingest_text with a note such as "Nadia at Acme is on the Acme pilot. Her budget is 32k, raised to 40k on March 14." This writes the note into that person's memory.
  2. Ask the assistant to call assemble_context with the question "What is Nadia's budget?" This returns ranked context from that person's memory and connected sources. It is read-only.

Check that the returned context mentions the budget. For dated recall and the other Memory API routes, see the Memory API docs.

Which key each tool needs

ToolKey
provision_appnone
describe, get_snippet, diagnoseany key
provision_user, get_claim_link, get_setup_bundleapp key (fsa_)
ingest_text, assemble_context, action_history, list_tools, configure_oauthperson's key (fsk_)

Calls follow the same limits and refusals as the REST routes they wrap. A call over the per-minute limit returns 429 with a Retry-After header.

Next