MCP server
Connect Claude, Cursor, VS Code and other MCP clients to your workspace and ask it questions.
Lornos runs a Model Context Protocol server, so an AI assistant or coding agent can ask your workspace questions and read the passages behind the answers. It uses the same API keys as the API, and it reads only the workspace the key belongs to.
Server address
https://lornos.dev/mcp
The server speaks the Streamable HTTP transport and answers each request with JSON. It keeps no session between requests.
Authentication
Create an API key and send it on every request:
Authorization: Bearer lrn_…
The key decides everything the server can reach:
- The workspace. Every tool reads the workspace the key was created in. No tool takes a workspace name or ID, so a client can't point it at another workspace.
- The tools. A key with the
chatscope seesaskandsearch. A key with thesourcesscope seeslist_sourcesandget_source. A key with both sees all four. - Revoking. A revoked or expired key gets
401on its next request.
Give an assistant its own key, with only the scopes it needs, so you can revoke it without touching your app.
Connect a client
Replace lrn_… with your key in each example.
Claude Code
claude mcp add --transport http lornos https://lornos.dev/mcp --header "Authorization: Bearer lrn_…"
Cursor
In .cursor/mcp.json:
{
"mcpServers": {
"lornos": {
"url": "https://lornos.dev/mcp",
"headers": { "Authorization": "Bearer lrn_…" }
}
}
}
VS Code
In .vscode/mcp.json:
{
"servers": {
"lornos": {
"type": "http",
"url": "https://lornos.dev/mcp",
"headers": { "Authorization": "Bearer lrn_…" }
}
}
}
Other clients
Any client that supports remote servers over HTTP with a custom header works. Clients that only connect through an OAuth sign-in can't connect yet.
Tools
| Tool | Scope | What it does |
|---|---|---|
ask |
chat |
Answers a question from your documents and cites passages by chunk ID, for example [refunds.md#2]. |
search |
chat |
Returns the passages that best match a query, each with its chunk ID and file, so the assistant can read the evidence itself. Up to 10 passages; 5 by default. |
list_sources |
sources |
Lists your documents with their indexing status and passage counts. |
get_source |
sources |
Shows one document by its source ID, including why indexing failed if it did. |
ask follows the same rules as every answer: it cites only passages retrieved for that question, and when nothing in your documents covers it, it says so instead of guessing. See Citations.
What the MCP server doesn't do
Every tool only reads. These stay in the console and the API:
- uploading, re-indexing and deleting sources;
- creating or revoking API keys;
- adding or removing members and changing roles;
- workspace settings, usage and limits.
Nothing outside your workspace is reachable through MCP.
Limits and usage
Each ask and each search counts as one question toward your workspace's limits, the same limits the playground and the API share. Over a limit, the tool returns a message saying when to try again. See Limits.
Both tools show on the Usage page in the console, marked MCP with the key's name: ask as a question, search as a search. list_sources and get_source aren't counted.
Check the connection
To check a key without a client, list its tools:
curl "https://lornos.dev/mcp" \
-H "Authorization: Bearer lrn_…" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
A valid key returns the tools its scopes allow. A missing, revoked or expired key returns 401.