Docs

Quickstart

From a new account to a working knowledge graph: sign up, connect an MCP client or script, give your agent a memory, and build a small graph and read it back.

Everything happens at khive.ai. You sign in and manage your account at https://khive.ai in a browser, and MCP clients connect to https://khive.ai/v1/mcp.

1. Create your account

Signing up is three steps, in this order: sign in, create your workspace, and hold a plan. An API key is a fourth step, for scripted access only. Each one is an explicit action; none of them happens as a side effect of the step before it.

Sign in

Open https://khive.ai/login and sign in with a one-time email link. There is no password to set.

Signing in creates a session and nothing else. You do not have a workspace yet, so the dashboard will tell you your account is not active until you complete the next step.

Create your workspace

Go to API Keys in the dashboard (https://khive.ai/dashboard/keys). Under Finish account setup, click Create workspace. This creates your workspace: your account's private graph and a project to hold your data.

This is the step people miss. Going straight to Billing before creating a workspace will not work: a purchase needs a workspace to credit, so the dashboard tells you to finish setting up your account first.

Hold a plan

Every account that uses khive holds one of three plans. There is no free tier.

PlanMonthlyAnnual: 17% offIncluded usageTrial
Start$8$801xnone
Plus$25$2505x Start14 days on monthly, card on file
Pro$100$1,00020x Startnone

Each plan includes a monthly usage allowance. The dashboard shows how much of it you have used as a share, and past 100% you add extra usage as a one-time purchase (from $10, valid for 500 days), which is what the Billing page (https://khive.ai/dashboard/billing) sells: pick an amount, checkout runs at Stripe, and the extra usage lands on your account once the payment settles.

Connecting a chat client (step 2) starts the Plus trial: exactly one Stripe screen between your sign-in and the connector going live, and the trial runs from there. Start and Pro are chosen from the pricing page. Cancel any time; service runs to the end of the paid period.

Access is checked on every call, in this order: an active plan (trialing or active, with its period not yet ended), then usage remaining (included usage first, then extra usage). A call refused by either check returns one line saying which, and where to manage it, and the tool list is unaffected. A plan that is past due is refused on the next call.

Create an API key

Back on API Keys, click Create API key. The key is displayed once. Copy it immediately and store it securely, because the dashboard cannot display the full key again. Keys are bound to your workspace, and you can revoke any of them from the same page.

You only need a key for scripted access. An OAuth-capable MCP client handles its own tokens, as described in the next step.

2. Connect an MCP client

khive speaks the standard MCP Streamable HTTP transport at:

https://khive.ai/v1/mcp

Point any OAuth-capable MCP client (Claude Desktop, claude.ai's connector UI, or your own client built on an MCP SDK) at that URL. The client discovers the OAuth metadata at /.well-known/oauth-protected-resource/v1/mcp, redirects you through the same sign-in you used in step 1, and comes back holding an access token scoped to your account. You don't copy or paste a key for this path. The client handles the token exchange.

Once connected, your client lists khive's tools by name: remember and recall_memories for memory, create_record, link_records, search_records, graph_neighbors and graph_context for the graph, add_task and list_tasks for tasks, and the rest of the catalogue. You don't call them yourself. Ask your agent in plain language and it picks the tool. The examples below show the tool and arguments it should end up calling, so you can check what happened.

Scripted and non-interactive access

Not every caller can drive an interactive browser redirect. CI jobs, backend scripts and local agent harnesses need a credential they can hold onto instead: a long-lived API key, created on the API Keys page in step 1 and sent as Authorization: ApiKey <key> or X-Api-Key: <key>. An API key connects to the same MCP endpoint as an OAuth client and is offered the same named tools; any MCP client that can send a fixed authorization header can use it, and so can a plain JSON-RPC POST to the MCP endpoint. If you use an OAuth-capable MCP client, you do not need an API key.

3. Give your agent a memory

In one session, tell your agent something worth keeping:

Remember that the billing API runs on Fly in the iad region, and we roll back with fly releases.

The agent calls:

remember   { "content": "The billing API runs on Fly in iad; roll back with fly releases.", "memory_type": "semantic" }

and gets back the new memory's id. Now close the session and open a fresh one, so nothing from the first conversation is in context. Ask:

How do we roll back the billing API?

The agent calls:

recall_memories   { "query": "how to roll back the billing API" }

and answers from the memory it stored, along with its score. Memories are records, so a wrong one can be corrected with update_record or removed with delete_record by its id.

4. Build a small graph and read it back

Memories are free text. When you want structure, ask your agent to record things and how they relate:

Record that billing-api is a service that depends on postgres-primary.

The agent calls create_record twice and link_records once:

create_record   { "kind": "service", "name": "billing-api", "description": "Billing API, deployed on Fly." }
create_record   { "kind": "service", "name": "postgres-primary", "description": "Primary Postgres database." }
link_records    { "source_id": "<billing-api id>", "target_id": "<postgres-primary id>", "relation": "depends_on" }

Each create_record returns the whole new record, including its id, and a similar_existing list of records that already look like it. Before you add a duplicate, check that list. link_records checks that the relation fits the two kinds and refuses a pair that does not.

To read it back, search by meaning, then walk the edges:

search_records    { "kind": "entity", "query": "which database does billing use" }
graph_neighbors   { "node_id": "billing-api" }

graph_neighbors takes an id or a name and returns each linked record with the relation and weight of its edge. When you want a grounded summary around a few records at once, graph_context takes entity_ids (ids or names) and returns each one with its neighbourhood.

Manage your account

Your plan, payment method, invoices and cancellation are under Manage billing on the Account page (https://khive.ai/account). Questions: contact@khive.ai.