ossian-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OSSIAN_URL | Yes | URL of the Ossian server (e.g. http://localhost:8081). | |
| OSSIAN_MODE | No | Access mode: read-only (default), read-write, or admin. Controls which tools are registered. | read-only |
| OSSIAN_API_KEY | Yes | API key for Ossian, issued via console or admin API. | |
| OSSIAN_DRY_RUN | No | Set to true to validate and log writes without executing. | |
| OSSIAN_AGENT_ID | No | Identifier that separates one agent's memories from another's. Agents sharing an ID share recollections. | |
| OSSIAN_AUDIT_LOG | No | Set to false to disable JSON audit logging to stderr (default on). | true |
| OSSIAN_ALLOW_FORGET | No | Set to true to enable forget_session tool (requires admin mode). | |
| OSSIAN_NAMESPACE_ALLOWLIST | No | Comma-separated list of namespaces that can be touched. | |
| OSSIAN_PROTECTED_NAMESPACES | No | Comma-separated list of namespaces that may be read but never ingested into. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ask_documentsA | Answer a question from the organisation's own documents, with citations. Returns the exact passages the answer was written from. Use this for anything about internal policy, runbooks, handbooks, contracts or product documentation — anything the user's organisation wrote down. If nothing in the corpus supports an answer this reports that rather than guessing: treat 'not found' as the real answer and say so, do not fall back on general knowledge and present it as the organisation's policy. |
| list_namespacesA | List the slices the document corpus is divided into, with how many documents each holds. Use this before ask_documents when a question clearly belongs to one area and you want to avoid another area answering it. |
| list_documentsA | List the documents available to answer from, with their ingestion status. Use this to tell the user what the system actually knows about, or to check whether something they uploaded has finished processing. |
| recallA | Retrieve what was previously remembered that relates to the current situation. Ranked by relevance, weighted by importance and decayed by age, so a recent statement outranks an old one saying the opposite. Worth calling at the start of a conversation with a returning user. This searches memory, not documents — use ask_documents for anything the organisation wrote down. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
recall vs ask_documents is clearly delineated (memory vs organisational documents) and reinforced with explicit cross-references in the descriptions. list_documents and list_namespaces are both listing operations but target different resources (documents vs corpus slices with counts), so an agent should rarely confuse them.
Two tools follow a clean list_* pattern (list_documents, list_namespaces) and ask_documents uses a verb_noun form, but 'recall' is a bare verb with no object, breaking the pattern. The set is still readable, just not uniformly conventional.
Four tools is on the lean side but suits a narrow retrieval/memory scope where each tool earns its place. Nothing feels redundant or excessive for the stated purpose.
The read path is well covered (list documents, list namespaces, ask, recall), but there is no tool to store or update memories, and no way to fetch or inspect a single document. If ingestion is handled externally this is workable, but the memory side looks write-incomplete.