Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Description from the maker (original English)
Ask your own documents with citations, plus durable memory for agents. Safe by default.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OSSIAN_URL, OSSIAN_API_KEY, OSSIAN_AGENT_ID, OSSIAN_MODEValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"ossian": {
"command": "npx",
"args": [
"-y",
"ossian-mcp"
],
"env": {
"OSSIAN_URL": "your-value",
"OSSIAN_API_KEY": "your-value",
"OSSIAN_AGENT_ID": "your-value",
"OSSIAN_MODE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add ossian --env OSSIAN_URL=your-value --env OSSIAN_API_KEY=your-value --env OSSIAN_AGENT_ID=your-value --env OSSIAN_MODE=your-value -- npx -y ossian-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ossian": {
"command": "npx",
"args": [
"-y",
"ossian-mcp"
],
"env": {
"OSSIAN_URL": "your-value",
"OSSIAN_API_KEY": "your-value",
"OSSIAN_AGENT_ID": "your-value",
"OSSIAN_MODE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"ossian": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ossian-mcp"
],
"env": {
"OSSIAN_URL": "your-value",
"OSSIAN_API_KEY": "your-value",
"OSSIAN_AGENT_ID": "your-value",
"OSSIAN_MODE": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
OSSIAN_URL envOSSIAN_AGENT_ID envOSSIAN_MODE envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account dockndevai, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: OSSIAN_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.2) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Agent-Native Google Calendar - manage events, sync, and public booking
Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP server for Ossian — ask your organisation's own documents and get the passages the answer came from, plus a memory for your agent that outlives the conversation.
Ossian is the server; this is the adapter that puts it in front of an agent. You need a running Ossian to point it at — see its README for a docker compose up.
Tools are gated by access mode (see Safe by default) — the server starts read-only, exposing only the four read tools until you raise the mode.
| Tool | For | Needs mode |
|---|---|---|
ask_documents | answer from the corpus, with citations — and say so when it cannot | read-only |
list_namespaces | which slices exist, and how much is in each | read-only |
list_documents | what is available to answer from, and what is still ingesting | read-only |
recall | retrieve what is relevant now, ranked by relevance, importance and recency | read-only |
add_document_from_url | pull a public page into the corpus | read-write |
remember | record a preference, fact or decision worth keeping | read-write |
forget_session | erase one conversation's memory (irreversible) | admin + OSSIAN_ALLOW_FORGET |
npm install -g ossian-mcp
You need a running Ossian and an API key. Issue one from the console (Console → API keys) or:
curl -X POST "$OSSIAN_URL/api/admin/api-keys" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \ -d '{"name":"mcp","roles":["ossian-user"],"namespace":"handbooks"}'
Give the key the narrowest scope that works. namespace confines it to one slice, so a key that leaks reads only what that agent was for.
{
"mcpServers": { "ossian": { "command": "ossian-mcp", "env": { "OSSIAN_URL": "http://localhost:8081", "OSSIAN_API_KEY": "osk_...", "OSSIAN_AGENT_ID": "support-bot", "OSSIAN_MODE": "read-only" } } } }
OSSIAN_AGENT_ID separates one agent's memories from another's; two agents sharing an id share their recollections, which is occasionally what you want and usually not.
See docs/CLIENTS.md for Claude Code / Cursor / Codex / VS Code / Windsurf snippets, and .env.example for every supported variable.
The server enforces an access model on top of the Ossian API key — defence in depth over the key's own roles and namespace confinement. It reads its policy from the environment (.env.example) and enforces it in src/security.ts:
read-only (default) → read-write → admin. A tool is registered only if the mode allows its capability. Read-only exposes four tools; ingest and remember need read-write; forget needs admin.forget_session erases memory irreversibly, so on top of admin mode it also requires this flag.forget_session prompts the human to approve before erasing a session's memory; clients that can't elicit fall back to the OSSIAN_ALLOW_FORGET gate.The primary control remains the API key: issue the narrowest one that works. See SECURITY.md.
A "not found" is an answer. ask_documents returns a refusal when nothing in the corpus supports a response, and the tool description tells the model to report that rather than falling back on general knowledge. An invented answer presented as company policy is the failure this whole system exists to prevent — do not paper over it in your own prompt.
Memory is not the corpus. recall searches what the agent was told; ask_documents searches what the organisation wrote down. They are separate stores on purpose: memories surfacing as citations in a policy answer would be indistinguishable from the policy itself.
npm install
npm run build OSSIAN_URL=http://localhost:8081 OSSIAN_API_KEY=osk_… node dist/index.js
It speaks JSON-RPC over stdio, so it will sit there waiting for a frame. To drive it by hand:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js
Diagnostics go to stderr on purpose — anything written to stdout that is not a protocol frame corrupts the stream, and the failure looks like a client that cannot parse rather than a server that printed a log line.
Apache-2.0