snipara-mcp
The snipara-mcp server provides a comprehensive project memory, context, and coordination platform for AI agents, offering persistent and shared project intelligence across sessions.
š Documentation & Context Retrieval
Semantic/keyword/hybrid search (
rlm_context_query), regex search (rlm_search), load specific files (rlm_load_document), retrieve chunks by ID (rlm_get_chunk), multi-round exploration (rlm_orchestrate), and cross-project queries (rlm_multi_project_query)
š§ Durable Memory
Store facts, decisions, and learnings (
rlm_remember,rlm_remember_bulk), recall past context (rlm_recall), end-of-task commits (rlm_end_of_task_commit), compact/deduplicate memories (rlm_memory_compact), and daily memory briefs (rlm_memory_daily_brief)
šļø Shared Context & Collections
Load team standards and playbooks (
rlm_shared_context), manage and link shared collections, upload best practices, and use reusable prompt templates
š Code Graph Analysis
Find callers (
rlm_code_callers), list imports (rlm_code_imports), explore structural neighborhoods (rlm_code_neighbors), and find shortest paths between symbols (rlm_code_shortest_path)
š Document Upload & Indexing
Upload individual or bulk documents (
rlm_upload_document,rlm_sync_documents), ingest SVG bundles, and monitor index health (rlm_index_health)
š Journals & Decisions
Operational daily journals (
rlm_journal_append,rlm_journal_get) and ADR-style structured decision tracking with supersession chains (rlm_decision_create,rlm_decision_supersede)
š¤ Multi-Agent Coordination
Create and manage agent swarms (
rlm_swarm_create,rlm_swarm_join), full task lifecycle management (rlm_task_create,rlm_task_claim,rlm_task_complete), resource locking (rlm_claim,rlm_release), shared key-value state (rlm_state_set,rlm_state_get), and broadcast events (rlm_broadcast)
š¢ Business Context
Manage client projects (
rlm_create_client_project), tenant profiles (rlm_tenant_profile_create), and business document collections (playbooks, presentations, reference diagrams)
āļø Query Planning & Utilities
Decompose complex queries (
rlm_decompose), multi-query execution (rlm_multi_query), session context management (rlm_inject), project settings (rlm_settings), and intelligent tool recommendations (rlm_help)
Allows OpenAI agents to access Snipara's project-scoped persistent memory, enabling context retrieval, memory storage, and document management across sessions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@snipara-mcpwhat do you remember about our database schema?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
snipara-mcp
snipara-mcp is the lightweight stdio MCP connector for the Snipara Project
Brain.
Snipara is the Project Brain for AI coding agents.
Use it when an MCP client needs a local stdio process that talks to Snipara's hosted Project Intelligence APIs. Snipara gives Claude Code, Cursor, Codex, and other MCP clients the decisions, active work, code impact, proof, and handoffs they need before they edit. If your client supports streamable HTTP MCP directly, prefer the hosted endpoint and skip the local process.
What Is Snipara?
Snipara is the shared Project Intelligence layer for AI-assisted software work.
It gives Claude Code, Cursor, Codex, OpenAI Agents, and other MCP-compatible clients project context that survives sessions, users, tools, and model switches.
Your agent still uses its own LLM. Snipara gives it the right project context: source-backed docs, reviewed memory, shared guidance, workflow continuity, and code graph structure. In category terms, it is an AI coding agent context, memory, and continuity platform.
Related MCP server: Locus
Why MCP?
MCP is becoming a standard adapter layer for agent tools. snipara-mcp makes
Snipara available through that layer without forcing developers into a specific
IDE, model, or orchestration framework.
The integration should feel small:
uvx snipara-mcpThe impact is larger: agents can retrieve durable project context instead of starting cold every session.
What It Unlocks
Need | Snipara MCP tool group |
Ask project docs a source-backed question |
|
Recall durable decisions and learnings |
|
Review the team Inbox |
|
Persist reusable memory after a task |
|
Reuse team standards and shared guidance |
|
Inspect structural code relationships |
|
Plan risky code changes |
|
Public MCP clients must use the snipara_* names. The rlm_* compatibility
aliases were removed from the distributed contract on 2026-08-16 and remain
only as internal handler identifiers. This contract cleanup is staged for the
next package release; clients using legacy names must migrate before upgrading.
The stdio server advertises the same compact default agent contract as the
hosted MCP endpoint. Set SNIPARA_TOOL_PROFILE=full only for clients that need
direct discovery of every specialist compatibility tool; hidden tools remain
callable by explicit name and discoverable through snipara_help.
The default discovery surface contains 13 coherent tools:
snipara_context_query, snipara_ask, snipara_search, snipara_read,
snipara_stats, snipara_help, snipara_get_chunk, snipara_recall,
snipara_remember_if_novel, snipara_end_of_task_commit,
snipara_inbox_review_queue, snipara_inbox_review_plan, and
snipara_inbox_review_apply.
Minimum-safe-change review (2.8.30)
The packaged snipara_context_query and snipara_code_impact contracts now
accept minimum_change_mode="review". When enabled, answer packs and impact
responses carry a non-blocking, evidence-first receipt covering existing
capabilities, stdlib/native options, installed dependencies, the smallest safe
diff, and validation-surface preservation. The policy is advisory and remains
opt-in until project evidence calibrates stronger enforcement.
Callers may provide bounded minimum_change_evidence with named provenance
such as runtime, manifest, lockfile, git_diff, or test_runner.
Unverified confirmed claims remain visible as asserted; confirmed is
reserved for a versioned, fingerprint-matching adapter receipt. The verified
adapters are lockfile_manifest for direct installed dependencies and
git_diff for a coherent local smallest-safe-diff check.
Responses also include non-blocking preservation guards for validation, errors,
auth/security, accessibility, public contracts, and tests.
Semantic rule contract (2.8.27)
The generated snipara_code_symbol_card and snipara_code_impact schemas now
forward bounded semantic_rules project overrides to the hosted service. Terms
are literal strings rather than executable regular expressions.
MCP transport security floor (2.8.26)
The connector now requires MCP Python SDK 1.28.1 or newer. This incorporates the upstream fixes for authenticated-principal session isolation, experimental task ownership, and WebSocket Host/Origin validation.
Configurable code-impact traversal (2.8.25)
The packaged snipara_code_impact contract now exposes depth (1-6),
direction (in, out, or both), and optional edge_kinds. This keeps the
connector contract aligned with hosted impact chains and Companion's hybrid
local/hosted traversal controls.
Credential-free discovery and compact contract (2.8.24)
MCP clients and directory inspectors can now complete initialize and
tools/list before credentials are configured. Every actual tool call still
fails closed until authentication and project selection are present. The
default tools/list response exposes the same 13-tool core as hosted Snipara,
while SNIPARA_TOOL_PROFILE=full retains direct discovery of all specialist
compatibility tools. Core tools now include complete selection guidance,
behavior annotations, and nested parameter documentation for safer agent use.
Agent-readable tool contracts (2.8.23)
The connector now preserves detailed tool descriptions and MCP behavior annotations from the hosted source of truth. Summary, coordination, state, memory, and code graph tools explain their prerequisites, access rules, side effects, idempotence, alternatives, parameters, outputs, and common failure modes so agents can choose them safely. Native output schemas remain deferred until the transport and structured result format upgrade together.
Unified conversational Inbox review (2.8.22)
Human team admins can list the same memory candidates and ProjectDecision
drafts shown by the multi-project Dashboard Inbox, create evidence-backed
approve/reject/needs-human recommendations, and atomically apply an explicitly
authorized snapshot. The service revalidates the human team-admin identity,
project ownership, current candidate states, and immutable item snapshots before
recording authority audits. Real credentials remain addressable for rejection
but are redacted from MCP output. The earlier ProjectDecision-only tools remain
available as specialist compatibility tools.
Conversational decision review (2.8.21)
Agents can list pending ProjectDecision drafts, propose evidence-backed
approve/reject/needs-human recommendations, and apply an explicitly authorized
snapshot-bound plan. Apply requires a human project admin and fails closed if a
draft changed after planning; there is no live wildcard approval.
Structured Why Capture task commits (2.8.20)
snipara_end_of_task_commit now accepts an atomic why block with decision,
rationale, alternatives, constraints, and observed_outcome. Structured
candidates stay pending until human review, and unknown parameters fail closed
instead of being silently ignored.
Retrieval outcome controls (2.8.19)
The stdio connector forwards the hosted server's bounded retrieval-outcome
controls for context_query and recall: optional task correlation, shadow or
enabled rerank requests, and the strict context attribution window. The hosted
server remains authoritative, so a client request can lower or disable the
configured mode but cannot escalate it.
Architecture
flowchart LR
Agents["Claude Code, Cursor, Codex, ChatGPT, OpenAI agents"] --> Stdio["snipara-mcp stdio process"]
Stdio --> Hosted["Hosted Snipara MCP API"]
Hosted --> Context["Context engine"]
Hosted --> Memory["Project memory"]
Hosted --> Graph["Code graph"]
Context --> AgentLLM["Agent's own LLM"]
Memory --> AgentLLM
Graph --> AgentLLMHosted HTTP Or Stdio?
Use the hosted HTTP endpoint when your MCP client supports streamable HTTP:
{
"mcpServers": {
"snipara": {
"type": "http",
"url": "https://api.snipara.com/mcp/your-project-id-or-slug",
"headers": {
"Authorization": "Bearer snp-your-key"
}
}
}
}Use snipara-mcp when your client expects a local stdio command:
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "snp-your-key",
"SNIPARA_PROJECT_ID": "your-project-id-or-slug"
}
}
}
}Decision rule:
HTTP MCP first for modern clients
snipara-mcpfor stdio-only clients or local compatibilitycreate-sniparawhen you want guided setup across clients and templates
Install
No local install:
uvx snipara-mcpPython package:
pip install snipara-mcpWith RLM Runtime helper integration:
pip install "snipara-mcp[rlm]"Quickstart
Sign in through the browser:
pip install snipara-mcp
snipara loginInitialize a project:
snipara initThe initializer detects common project files, writes MCP configuration, and can upload local project docs when you are authenticated.
Useful options:
snipara init --slug my-project
snipara init --dry-run
snipara init --no-upload
snipara init --skip-testClaude Code
claude mcp add snipara uvx snipara-mcpThen export credentials in your shell:
export SNIPARA_API_KEY="snp-your-key"
export SNIPARA_PROJECT_ID="your-project-id-or-slug"Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"snipara": {
"command": "uvx",
"args": ["snipara-mcp"],
"env": {
"SNIPARA_API_KEY": "snp-your-key",
"SNIPARA_PROJECT_ID": "your-project-id-or-slug"
}
}
}
}Environment
Variable | Required | Description |
| Yes, unless using | Snipara API key |
| Yes, unless using | Project identifier |
| Yes, unless using | Project slug |
| No | Defaults to |
| No |
|
OAuth tokens created by snipara login are stored in ~/.snipara/tokens.json.
If a project id or slug is set, the connector selects the matching token and
does not silently fall back to another project.
What You Get
The connector exposes the same compact default MCP contract as the hosted
backend. The packaged full compatibility surface is generated from the server
source of truth and is available with SNIPARA_TOOL_PROFILE=full.
Common tool groups:
retrieval:
snipara_context_query,snipara_search,snipara_get_chunk,snipara_load_documentdurable memory:
snipara_recall,snipara_remember,snipara_memory_compactowner-aware bootstrap:
snipara_session_memories,snipara_owner_profile_get,snipara_owner_profile_updateshared context:
snipara_shared_context, collection and template toolsdocument upload:
snipara_upload_document,snipara_sync_documentsproject setup: client, project, and business-context workspace tools
operations:
snipara_settings,snipara_index_health,snipara_reindexcode graph:
snipara_code_*tools when code indexes are availablecoordination: swarm, hierarchical task, and state tools when enabled
Tool availability can vary by plan, hosted deployment, and project index state.
CLI Commands
Command | Description |
| Browser login and token setup |
| Initialize Snipara in the current project |
| Clear stored tokens |
| Show auth and project status |
| Run the MCP stdio server |
Legacy aliases such as snipara-init, snipara-mcp-login,
snipara-mcp-logout, and snipara-mcp-status are still supported.
Relationship To Other Repos
Repo | Role |
| Current generated public connector mirror |
| Local workflow, impact, verification, and handoff CLI |
| Open memory primitives and schema |
snipara-mcp is intentionally thin. It should be easy to install, easy to
audit, and boring to operate. The heavy lifting stays in Snipara's hosted
context and memory engine.
Development
pip install -e ".[dev]"
pytest
ruff check .The source of truth for the generated tool contract lives in the Snipara server. When backend tools change, regenerate the packaged contract before publishing this package.
License
MIT. See LICENSE.
Available Tools
12 toolssnipara_askARead-onlyIdempotent
Answer one simple question from indexed project documentation with server-side synthesis. This is a read-only VIEWER operation and changes no project state. Use snipara_context_query when citations, answer packs, retrieval controls, or source sections matter; use snipara_search for an exact regex. Returns a concise answer or a bounded no-match/error result.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The question to ask | |
| correlation_context | No | Optional retrieval-correlation context. Reuse session_id across retrieval and outcome calls so telemetry can be joined inside the authenticated project. These identifiers never change authorization or project scope; do not include secrets, tenant IDs, or user data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by stating it is a VIEWER operation with server-side synthesis and returns a bounded result, though it doesn't detail other behaviors like latency or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus a comparison sentence, front-loaded with purpose and usage, with no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, annotations, and lack of output schema, the description adequately covers purpose, usage, and return type. It could mention limitations on question complexity, but overall it's quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already described. The description adds overall context ('simple question') but no per-parameter details beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool answers a simple question from indexed project documentation with server-side synthesis, and distinguishes itself from siblings snipara_context_query and snipara_search, making the purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use this tool (simple question) and when to use alternatives (snipara_context_query for citations/controls, snipara_search for exact regex), offering excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_context_queryARead-onlyIdempotent
Query project documents, parsed business files, and shared context. Use this first for source truth and narrative documentation. Returns a source-grounded answer_pack plus retrieval_diagnostics and ranked sections within token budget. If a broad query times out, retry once with a narrow 3-8 term query, max_tokens 800-1500, search_mode='keyword', return_references=true, auto_decompose=false, and include_all_tiers=false. For exact text use snipara_search; for structural code context use snipara_code_neighbors, snipara_code_callers, or snipara_code_imports.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Optional task label that scopes the live-join fallback and retrieval correlation; persisted outcome posterior statistics remain project-wide | |
| query | Yes | Documentation, business-context, or current-truth question. For timeout recovery, narrow this to the key file, feature, symbol, or 3-8 terms. | |
| max_tokens | No | Token budget. Use 800-1500 for fast recovery retries after a timeout. | |
| search_mode | No | Search strategy. Use keyword for fast retry/recovery paths; use hybrid for normal documentation discovery. | hybrid |
| auto_decompose | No | Auto-decompose complex queries into sub-queries (Pro+ only). Complex queries (50+ words, multiple questions, comparisons) are automatically broken down and results merged. Set to False for fast timeout recovery retries. | |
| include_metadata | No | Include document, section, tier, and retrieval metadata with returned context. | |
| prefer_summaries | No | Prefer stored summaries when available without excluding authoritative source matches. | |
| include_all_tiers | No | Include all context tiers including COLD and ARCHIVE. By default, searches only HOT and WARM tiers for faster, more relevant results. | |
| return_references | No | Return chunk references (IDs + previews) instead of full content. Use snipara_get_chunk to retrieve full content by ID. Reduces hallucination by maintaining clear source attribution and is the preferred fast retry path after a timeout. | |
| correlation_context | No | Optional retrieval-correlation context. Reuse session_id across retrieval and outcome calls so telemetry can be joined inside the authenticated project. These identifiers never change authorization or project scope; do not include secrets, tenant IDs, or user data. | |
| include_answer_pack | No | Include a structured answer pack with source facts, caveats, verification checklist, and code/context hints before the ranked context sections. | |
| context_chunk_outcome_rerank_mode | No | Requested bounded chunk-outcome rerank mode. This request can disable or lower the server-configured mode but cannot escalate beyond it. | disabled |
| context_chunk_outcome_window_hours | No | Strict attribution window for compatible chunk outcomes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral details like timeout recovery, token budget behavior, and fallback to job queue. This goes beyond what annotations provide, though some redundancy exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with primary purpose, then flows to usage, recovery, and alternatives. It is appropriately sized for a complex tool with 13 parameters, though some repetition in parameter details could be streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains return types (answer_pack, diagnostics, ranked sections) and covers timeout behavior, retry logic, token budget, and sibling tools. It addresses the complexity of nested parameters and provides sufficient context for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra meaning by contextualizing several parameters (query, max_tokens, search_mode, return_references, auto_decompose, include_all_tiers) within the timeout recovery scenario, enhancing their practical use beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries project documents, business files, and shared context for source truth and narrative documentation. It specifies the return type (answer_pack, diagnostics, ranked sections) and distinguishes from siblings by directing exact text searches to snipara_search and code queries to code-specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidelines are provided: 'Use this first for source truth and narrative documentation.' A recovery strategy for timeouts is given in detail (narrow query, max_tokens 800-1500, etc.), and alternatives are named for exact text (snipara_search) and code context (snipara_code_* tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_end_of_task_commitA
Persist a bounded end-of-task summary, optional structured Why Capture, and selected durable outcomes so another agent can resume the work. This EDITOR operation writes memory and workflow state and is non-idempotent; dry_run validates without writing. Use snipara_remember_if_novel for one reusable memory and document upload tools for source material. Unknown fields fail closed. Returns created or skipped records, review candidates, handoff metadata, and validation warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| why | No | Atomic Why Capture payload; never split by summary heuristics | |
| task | No | Short task label used as structured Why Capture provenance | |
| dry_run | No | Validate extraction and return the proposed receipt without writing memory or workflow state. | |
| outcome | No | Final task state used to frame the handoff and durable extraction. | completed |
| summary | No | Unstructured task summary used only when why is absent | |
| category | No | Optional stable category shared by memories produced from this commit. | |
| artifacts | No | Durable artifact identifiers or paths produced by the task. | |
| handoff_only | No | For final workflow commits, create the Team Sync handoff and skip durable-memory extraction. | |
| files_touched | No | Project-relative files materially changed or inspected during the task. | |
| persist_types | No | Memory categories that may be extracted from the task summary; omit unwanted categories. | |
| external_user_id | No | Integrator client keys only: stable end-user ID for user-owned memories created from task commits. | |
| memory_reconciliation_mode | No | For newly created task memories, find older similar memories. recommend returns candidates only; auto_safe supersedes only high-confidence same-scope/type/category matches. | recommend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly states it is an EDITOR operation that writes memory and workflow state, is non-idempotent, and that unknown fields fail closed. This adds significant behavioral context beyond annotations, which only provide hints about read-only, open-world, idempotent, and destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at four sentences, front-loaded with the primary purpose, and every sentence adds value. No redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (12 params, nested objects, no output schema), the description provides essential context: it explains return values, validation behavior, and alternative tools. It could be slightly more detailed, but overall it is adequately complete for an experienced agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 12 parameters, so the baseline is 3. The description adds minimal parameter-specific meaning beyond the schema, but the schema itself is comprehensive. No deduction needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool persists end-of-task summaries, structured Why Capture, and durable outcomes for agent handoffs. It distinguishes from siblings by naming snipara_remember_if_novel for single reusable memories and document upload tools for source material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions when to use snipara_remember_if_novel and document upload tools as alternatives. It also notes dry_run validates without writing, giving guidance on validation usage. However, it does not explicitly state when not to use this tool versus the named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_get_chunkARead-onlyIdempotent
Fetch one complete indexed source chunk by the stable chunk ID returned from a reference-based context query. This is a read-only VIEWER operation and changes no project state. Use snipara_context_query first to discover relevant references; use snipara_read for an exact document line range instead. Returns the chunk text, source identity, position metadata, and a bounded not-found/error result.
| Name | Required | Description | Default |
|---|---|---|---|
| chunk_id | Yes | The chunk ID from snipara_context_query results (when return_references=True) | |
| correlation_context | No | Optional retrieval-correlation context. Reuse session_id across retrieval and outcome calls so telemetry can be joined inside the authenticated project. These identifiers never change authorization or project scope; do not include secrets, tenant IDs, or user data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description reinforces annotations with 'read-only VIEWER operation and changes no project state.' It also discloses return contents: chunk text, source identity, position metadata, and bounded error result. This adds value beyond annotations by detailing output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states the core action. Second sentence provides usage guidance and a brief summary of return values. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully covers what the tool does, when to use it, what it returns, and how it differs from siblings. For a simple fetch-by-ID tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both parameters. Description adds minor context for chunk_id (its source) but does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Fetch one complete indexed source chunk by the stable chunk ID returned from a reference-based context query.' It specifies the verb (Fetch), resource (chunk), and source of the ID. It also distinguishes the tool from snipara_read by noting its use for exact document line ranges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly states when to use this tool: after snipara_context_query to fetch a chunk by ID. It also provides an alternative: use snipara_read for exact line ranges. This clearly guides the agent on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_inbox_review_applyADestructive
Atomically apply the exact memory-candidate and decision-draft actions from a prior team Inbox review plan. This destructive ADMIN operation requires explicit user authorization plus a real human team-admin identity, records authority audits, and fails closed if any item or snapshot changed. It is not idempotent and must follow snipara_inbox_review_plan. Returns per-item outcomes and the atomic apply receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Human authorization rationale recorded in the authority audit. | |
| actions | Yes | Exact approve/reject action snapshot from the plan; additions or mutations fail closed. | |
| review_plan_id | Yes | Exact immutable plan ID returned by snipara_inbox_review_plan after evidence validation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and idempotentHint=false. The description adds significant behavioral context: atomicity, authorization requirement with human admin identity, audit recording, 'fails closed' behavior, and return of per-item outcomes and a receipt. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core purpose in the first sentence. Each subsequent sentence adds distinct value (authorization, atomicity, failure behavior, return values). No wasted words. Structure is clear and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates by mentioning return values (per-item outcomes and receipt) and failure behavior (fails closed). It covers prerequisites, atomicity, and audit trails. Lacks detail on error scenarios or partial failure, but overall adequate for a destructive admin tool with rich schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter definitions. The description does not add parameter-level meaning beyond what the schema already provides (e.g., review_plan_id, reason, actions). It reinforces overall context but does not enhance parameter understanding. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies memory-candidate and decision-draft actions from a prior review plan. It explicitly distinguishes from sibling tools like snipara_inbox_review_plan and snipara_inbox_review_queue by mentioning it must follow the plan and is the apply step. The use of 'atomic' and 'destructive ADMIN operation' further sharpens purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear prerequisites: must follow snipara_inbox_review_plan, requires explicit user authorization and a real human team-admin identity. It also notes it is not idempotent and fails closed if items changed. However, it does not explicitly state when not to use this tool versus alternatives, though the sibling set offers no other apply tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_inbox_review_planARead-onlyIdempotent
Validate evidence-backed recommendations for team Inbox memory candidates and ProjectDecision drafts without changing authority. This read-only ADMIN operation creates a snapshot-bound review_plan_id; approve/reject items enter the snapshot while needs_human items remain pending. Use snipara_inbox_review_queue first and never call apply without explicit human authorization. Returns the immutable plan, exclusions, and validation findings.
| Name | Required | Description | Default |
|---|---|---|---|
| recommendations | Yes | One evidence-backed recommendation per Inbox item; needs_human items stay outside the apply snapshot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Confirms read-only nature and non-destructive behavior, aligning with annotations. Adds valuable details about snapshot creation, disposition handling (needs_human items remain pending), and return structure (immutable plan, exclusions, findings). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently cover purpose, constraints, workflow, and output. Every clause earns its place with no fluff. Front-loaded with key action and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description explains the overall workflow and mentions return of 'immutable plan, exclusions, and validation findings', it lacks a precise specification of the return format. However, given the simple input and no output schema, it is mostly complete. A minor gap in fully detailing the return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage on all properties. The description adds context on how the recommendations parameter is used, particularly that needs_human items are excluded from the apply snapshot, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates evidence-backed recommendations and creates a snapshot-bound review plan. It distinguishes from siblings like snipara_inbox_review_queue and snipara_inbox_review_apply by specifying its role as a read-only planning step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use snipara_inbox_review_queue first and never call apply without human authorization. This provides clear workflow context and when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_inbox_review_queueARead-onlyIdempotent
List human-reviewable memory candidates and ProjectDecision drafts from the current user's team Dashboard Inbox. This is a read-only ADMIN operation and changes no authority or review state; credential-like material is redacted. Use snipara_inbox_review_plan to validate recommendations before any authorized mutation. Returns stable item IDs, project ownership, evidence, and current review status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum team Inbox items to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds useful behavioral context: it is an ADMIN operation, credential-like material is redacted, and it returns stable IDs, ownership, evidence, and review status. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each essential: purpose, behavioral transparency, and usage guidance. No wasted words; front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one simple parameter and no output schema, the description fully covers what the tool does, what it returns, its security posture, and how it relates to sibling tools. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'limit' parameter is already described in the input schema with default, max, min. The description adds no further parameter details. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('List'), identifies the resource ('human-reviewable memory candidates and ProjectDecision drafts'), and specifies binding context ('current user's team Dashboard Inbox'). It clearly differentiates from the sibling review_plan tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is a read-only ADMIN operation that changes no state, and directs the agent to use snipara_inbox_review_plan for validating recommendations before any authorized mutation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_readARead-onlyIdempotent
Read an exact line range from indexed project documentation. This is a read-only VIEWER operation and changes no project state. Use it after snipara_search or snipara_context_query when exact wording matters; use snipara_get_chunk instead when you already have a cited chunk ID. Returns the resolved range and text, or a validation/not-found error.
| Name | Required | Description | Default |
|---|---|---|---|
| end_line | No | Ending line number. Defaults to start_line + 50. | |
| file_path | No | Indexed document path. Also accepted by the handler as file, path, or document. | |
| start_line | No | Starting line number. Relative to file_path when provided; otherwise global index line. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states it's a 'read-only VIEWER operation and changes no project state', which aligns with and adds context to annotations (readOnlyHint, idempotentHint, destructiveHint). Also specifies return behavior (resolved range and text, or errors).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no waste. The first sentence states purpose, the second provides usage context, and the third describes output. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (3 optional params, no output schema), the description covers purpose, usage context, parameter details, and return behavior (including errors). Annotations cover safety, and the description fills in behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by explaining defaults (end_line defaults to start_line + 50), the relative/global nature of start_line, and accepted aliases for file_path (file, path, document).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Read an exact line range from indexed project documentation', specifying the verb and resource. It distinguishes itself from siblings by mentioning alternatives like snipara_get_chunk and context after snipara_search or snipara_context_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use after snipara_search or snipara_context_query when exact wording matters, and use snipara_get_chunk when you already have a cited chunk ID. This clearly indicates when to and when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_recallARead-onlyIdempotent
Semantically recall durable Memory V2 decisions, learnings, preferences, and session carryover within the requested owner boundary. This is a read-only VIEWER operation and changes no memory authority. Use snipara_context_query for source documents and snipara_memories for lifecycle inventory. Returns ranked active memories, optional inactive warnings, authority metadata, and bounded retrieval diagnostics.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Optional task label recorded for retrieval/outcome correlation. | |
| type | No | Optional durable memory type filter applied before semantic ranking. | |
| limit | No | Maximum memories to return | |
| query | Yes | Memory question such as a past decision, preference, or validated learning | |
| scope | No | Owner boundary to search; scope=agent requires agent_id and scope=user may use external_user_id. | |
| agent_id | No | Required when scope=agent; limits recall to one agent namespace | |
| category | No | Filter by category | |
| min_relevance | No | Minimum relevance score (0-1) | |
| external_user_id | No | Integrator client keys only: stable end-user ID for scope=user recall. Snipara hashes and namespaces it per integrator client. | |
| include_inactive | No | Include inactive memories in the main result set | |
| warning_threshold | No | Minimum relevance score for inactive-memory warnings | |
| correlation_context | No | Optional retrieval-correlation context. Reuse session_id across retrieval and outcome calls so telemetry can be joined inside the authenticated project. These identifiers never change authorization or project scope; do not include secrets, tenant IDs, or user data. | |
| outcome_rerank_mode | No | Optional bounded memory-outcome rerank mode. Omission uses the server configuration; a request cannot escalate beyond it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it is a 'read-only VIEWER operation' and 'changes no memory authority', and specifies return components (ranked memories, warnings, metadata, diagnostics). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the main purpose and scope. The second clarifies the read-only nature, directs to alternatives, and summarizes return structure. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 13 parameters and a nested object, the description omits details on return value structure and usage of complex parameters like 'correlation_context'. Given no output schema, more clarity on output format would improve completeness, but the description covers core purpose and behavior adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add significant parameter-level detail beyond the schema; it only mentions return components. However, the schema itself is comprehensive, so additional explanation is not critical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'recall' and the resource 'durable Memory V2 decisions, learnings, preferences, and session carryover', and specifies the 'requested owner boundary'. It distinguishes from siblings by explicitly naming 'snipara_context_query' for source documents and 'snipara_memories' for lifecycle inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('semantically recall durable Memory V2...') and provides alternatives ('Use snipara_context_query for source documents and snipara_memories for lifecycle inventory'), giving clear guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_remember_if_novelAIdempotent
Store one durable Memory V2 record only when it is sufficiently different from existing reviewed memory. This EDITOR operation may write project, team, user, or agent state; duplicate calls normally skip the write, while auto_safe reconciliation may supersede high-confidence same-owner matches without deleting them. Use snipara_end_of_task_commit for multi-outcome workflow capture and context tools for source documents. Returns whether storage occurred, duplicate evidence, the memory ID, and reconciliation actions.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The memory text to store | |
| type | No | Durable knowledge type used for authority, retention, and later recall filtering. | fact |
| scope | No | Memory owner boundary. scope=agent requires agent_id; scope=user is personal to the authenticated user or integrator external_user_id. | project |
| source | No | Optional source label for the memory write | |
| agent_id | No | Required when scope=agent; identifies the agent-owned memory namespace | |
| category | No | Optional stable category used to group and deduplicate related memories. | |
| ttl_days | No | Optional retention period in days; omit only for knowledge that should not expire automatically. | |
| related_to | No | Existing memory IDs that provide an explicit relationship, not duplicate candidates. | |
| dedupe_limit | No | Maximum nearest existing memories examined before deciding whether this write is novel. | |
| document_refs | No | Project-relative source document paths supporting this memory; never place secrets here. | |
| allow_supersede | No | Reserved for future conflict handling | |
| external_user_id | No | Integrator client keys only: stable end-user ID for scope=user memory. Snipara hashes and namespaces it per integrator client. | |
| novelty_threshold | No | Similarity threshold above which a memory is treated as duplicate | |
| memory_reconciliation_mode | No | After storing, find older similar memories. recommend returns supersede candidates only; auto_safe supersedes only high-confidence same-scope/type/category matches. No physical deletion. | recommend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond annotations: conditional storage based on novelty, duplicate skipping, auto_safe reconciliation superseding high-confidence matches without deletion, and potential state writes. Annotations provide idempotent and non-destructive hints, but the description adds nuanced behavior not captured in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with core purpose, and every sentence adds essential information. No fluff or repetition. Length is appropriate given the tool complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 14 parameters and no output schema, the description is highly complete: it explains core logic (novelty, deduplication, reconciliation), scope semantics, return fields (storage status, duplicate evidence, memory ID, reconciliation actions), and references sibling tools. Covers all critical aspects for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not significantly add parameter-level meaning beyond the schema. While it provides context like 'never place secrets here' for document_refs, this is also in the schema. No major added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Store one durable Memory V2 record only when it is sufficiently different from existing reviewed memory.' It specifies it is an EDITOR operation, distinguishes from snipara_end_of_task_commit and context tools, and lists return values. The name and description together convey a precise verb-resource-action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using snipara_end_of_task_commit for multi-outcome workflow capture and context tools for source documents, indicating when not to use this tool. It also describes duplicate call behavior and reconciliation modes, providing clear guidance on when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_searchARead-onlyIdempotent
Search indexed project documentation with an exact regular expression. This is a read-only VIEWER operation and changes no project state. Use it for identifiers, paths, or literal wording; use snipara_context_query for semantic source retrieval and snipara_read after locating a relevant range. Returns capped matches with document and line context, or a validation/no-match result.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Alias for pattern for clients that normalize search inputs to query. | |
| pattern | No | Regex text pattern to search for. | |
| max_results | No | Maximum regex matches to return. | |
| correlation_context | No | Optional retrieval-correlation context. Reuse session_id across retrieval and outcome calls so telemetry can be joined inside the authenticated project. These identifiers never change authorization or project scope; do not include secrets, tenant IDs, or user data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds that it is a 'VIEWER operation' that 'changes no project state,' returns 'capped matches,' and mentions validation/no-match resultāadding context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then usage, then behavior. Every sentence adds essential information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains return type (capped matches with document and line context). Handles nested correlation_context as optional. With annotations for safety, description is fully sufficient for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds minimal value: notes 'query' is an alias for 'pattern,' and mentions 'max_results' cap. Does not significantly enhance schema-provided meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Search indexed project documentation with an exact regular expression,' specifying a clear verb, resource, and scope. It distinguishes from siblings snipara_context_query and snipara_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to use (identifiers, paths, literal wording) and when to use alternatives (snipara_context_query for semantic, snipara_read after locating range). Provides return behavior (capped matches).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snipara_statsARead-onlyIdempotent
Read compact project documentation and retrieval statistics without changing project state. File samples and database-backed index health are opt-in to keep the response small. Use snipara_index_health for operational diagnosis rather than this overview. Returns counts, token/index summaries, and only the optional sections requested.
| Name | Required | Description | Default |
|---|---|---|---|
| max_files | No | Maximum file paths to include when include_files=true. | |
| include_files | No | Include a capped sample of indexed file paths. | |
| include_index_health | No | Include a compact DB-backed index-health snapshot. For full health, call snipara_index_health. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description reinforces 'without changing project state' and adds detail about opt-in sections and compactness. This adds value beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct value: read-only purpose, opt-in details, alternative tool. Front-loaded with the core action. No redundant or unnecessary wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three optional parameters and no output schema, the description adequately explains what it returns (counts, token/index summaries, optional sections) and when to use the sibling tool. No critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter having a description. The description adds context that file samples and index health are opt-in 'to keep the response small', which enhances understanding of the parameter defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Read compact project documentation and retrieval statistics', using a specific verb and resource. It distinguishes this tool from siblings by explicitly referencing snipara_index_health as an alternative for operational diagnosis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use snipara_index_health for operational diagnosis rather than this overview', providing clear when-not and alternative. This leaves no ambiguity about when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
133 tool updates
v2.8.24- Removed
rlm_agent_profile_get - Removed
rlm_agent_profile_update - Removed
rlm_agent_status - Removed
rlm_broadcast - Removed
rlm_claim - Removed
rlm_clear_context - Removed
rlm_code_callers - Removed
rlm_code_imports - Removed
rlm_code_neighbors - Removed
rlm_code_shortest_path - Removed
rlm_context - Removed
rlm_context_query - Removed
rlm_create_client_project - Removed
rlm_create_collection - Removed
rlm_decision_create - Removed
rlm_decision_query - Removed
rlm_decision_supersede - Removed
rlm_decompose - Removed
rlm_delete_summary - Removed
rlm_end_of_task_commit - Removed
rlm_ensure_business_collection - Removed
rlm_forget - Removed
rlm_get_chunk - Removed
rlm_get_collection_documents - Removed
rlm_get_summaries - Removed
rlm_get_template - Removed
rlm_help - Removed
rlm_htask_audit_trail - Removed
rlm_htask_block - Removed
rlm_htask_checkpoint_delta - Removed
rlm_htask_close - Removed
rlm_htask_complete - Removed
rlm_htask_create - Removed
rlm_htask_create_feature - Removed
rlm_htask_delete - Removed
rlm_htask_get - Removed
rlm_htask_metrics - Removed
rlm_htask_policy_get - Removed
rlm_htask_policy_update - Removed
rlm_htask_recommend_batch - Removed
rlm_htask_tree - Removed
rlm_htask_unblock - Removed
rlm_htask_update - Removed
rlm_htask_verify_closure - Removed
rlm_index_health - Removed
rlm_index_recommendations - Removed
rlm_inject - Removed
rlm_journal_append - Removed
rlm_journal_get - Removed
rlm_journal_summarize - Removed
rlm_link_collection - Removed
rlm_list_business_collections - Removed
rlm_list_client_projects - Removed
rlm_list_collections - Removed
rlm_list_templates - Removed
rlm_load_document - Removed
rlm_load_project - Removed
rlm_memories - Removed
rlm_memory_attach_source - Removed
rlm_memory_clean_candidates - Removed
rlm_memory_compact - Removed
rlm_memory_daily_brief - Removed
rlm_memory_duplicate_candidates - Removed
rlm_memory_health - Removed
rlm_memory_invalidate - Removed
rlm_memory_resolve_queue_item - Removed
rlm_memory_review_queue - Removed
rlm_memory_supersede - Removed
rlm_memory_verify - Removed
rlm_multi_project_query - Removed
rlm_multi_query - Removed
rlm_orchestrate - Removed
rlm_plan - Removed
rlm_query_trends - Removed
rlm_read - Removed
rlm_recall - Removed
rlm_reindex - Removed
rlm_release - Removed
rlm_remember - Removed
rlm_remember_bulk - Removed
rlm_remember_if_novel - Removed
rlm_repl_context - Removed
rlm_request_access - Removed
rlm_search - Removed
rlm_search_analytics - Removed
rlm_sections - Removed
rlm_session_bootstrap_status - Removed
rlm_session_memories - Removed
rlm_settings - Removed
rlm_shared_context - Removed
rlm_state_get - Removed
rlm_state_poll - Removed
rlm_state_set - Removed
rlm_stats - Removed
rlm_store_summary - Removed
rlm_svg_bundle_ingest - Removed
rlm_swarm_create - Removed
rlm_swarm_events - Removed
rlm_swarm_join - Removed
rlm_swarm_leave - Removed
rlm_swarm_members - Removed
rlm_swarm_update - Removed
rlm_sync_documents - Removed
rlm_task_bulk_create - Removed
rlm_task_claim - Removed
rlm_task_complete - Removed
rlm_task_create - Removed
rlm_task_delete - Removed
rlm_task_events - Removed
rlm_task_list - Removed
rlm_task_reassign - Removed
rlm_task_recover - Removed
rlm_task_stats - Removed
rlm_task_unclaim - Removed
rlm_task_update - Removed
rlm_tenant_profile_create - Removed
rlm_tenant_profile_get - Removed
rlm_unlink_collection - Removed
rlm_upload_business_document - Removed
rlm_upload_document - Removed
rlm_upload_shared_document - Added
snipara_ask - Added
snipara_context_query - Added
snipara_end_of_task_commit - Added
snipara_get_chunk - Added
snipara_inbox_review_apply - Added
snipara_inbox_review_plan - Added
snipara_inbox_review_queue - Added
snipara_read - Added
snipara_recall - Added
snipara_remember_if_novel - Added
snipara_search - Added
snipara_stats
121 tool updates
v2.8.3- First observed
rlm_agent_profile_get - First observed
rlm_agent_profile_update - First observed
rlm_agent_status - First observed
rlm_broadcast - First observed
rlm_claim - First observed
rlm_clear_context - First observed
rlm_code_callers - First observed
rlm_code_imports - First observed
rlm_code_neighbors - First observed
rlm_code_shortest_path - First observed
rlm_context - First observed
rlm_context_query - First observed
rlm_create_client_project - First observed
rlm_create_collection - First observed
rlm_decision_create - First observed
rlm_decision_query - First observed
rlm_decision_supersede - First observed
rlm_decompose - First observed
rlm_delete_summary - First observed
rlm_end_of_task_commit - First observed
rlm_ensure_business_collection - First observed
rlm_forget - First observed
rlm_get_chunk - First observed
rlm_get_collection_documents - First observed
rlm_get_summaries - First observed
rlm_get_template - First observed
rlm_help - First observed
rlm_htask_audit_trail - First observed
rlm_htask_block - First observed
rlm_htask_checkpoint_delta - First observed
rlm_htask_close - First observed
rlm_htask_complete - First observed
rlm_htask_create - First observed
rlm_htask_create_feature - First observed
rlm_htask_delete - First observed
rlm_htask_get - First observed
rlm_htask_metrics - First observed
rlm_htask_policy_get - First observed
rlm_htask_policy_update - First observed
rlm_htask_recommend_batch - First observed
rlm_htask_tree - First observed
rlm_htask_unblock - First observed
rlm_htask_update - First observed
rlm_htask_verify_closure - First observed
rlm_index_health - First observed
rlm_index_recommendations - First observed
rlm_inject - First observed
rlm_journal_append - First observed
rlm_journal_get - First observed
rlm_journal_summarize - First observed
rlm_link_collection - First observed
rlm_list_business_collections - First observed
rlm_list_client_projects - First observed
rlm_list_collections - First observed
rlm_list_templates - First observed
rlm_load_document - First observed
rlm_load_project - First observed
rlm_memories - First observed
rlm_memory_attach_source - First observed
rlm_memory_clean_candidates - First observed
rlm_memory_compact - First observed
rlm_memory_daily_brief - First observed
rlm_memory_duplicate_candidates - First observed
rlm_memory_health - First observed
rlm_memory_invalidate - First observed
rlm_memory_resolve_queue_item - First observed
rlm_memory_review_queue - First observed
rlm_memory_supersede - First observed
rlm_memory_verify - First observed
rlm_multi_project_query - First observed
rlm_multi_query - First observed
rlm_orchestrate - First observed
rlm_plan - First observed
rlm_query_trends - First observed
rlm_read - First observed
rlm_recall - First observed
rlm_reindex - First observed
rlm_release - First observed
rlm_remember - First observed
rlm_remember_bulk - First observed
rlm_remember_if_novel - First observed
rlm_repl_context - First observed
rlm_request_access - First observed
rlm_search - First observed
rlm_search_analytics - First observed
rlm_sections - First observed
rlm_session_bootstrap_status - First observed
rlm_session_memories - First observed
rlm_settings - First observed
rlm_shared_context - First observed
rlm_state_get - First observed
rlm_state_poll - First observed
rlm_state_set - First observed
rlm_stats - First observed
rlm_store_summary - First observed
rlm_svg_bundle_ingest - First observed
rlm_swarm_create - First observed
rlm_swarm_events - First observed
rlm_swarm_join - First observed
rlm_swarm_leave - First observed
rlm_swarm_members - First observed
rlm_swarm_update - First observed
rlm_sync_documents - First observed
rlm_task_bulk_create - First observed
rlm_task_claim - First observed
rlm_task_complete - First observed
rlm_task_create - First observed
rlm_task_delete - First observed
rlm_task_events - First observed
rlm_task_list - First observed
rlm_task_reassign - First observed
rlm_task_recover - First observed
rlm_task_stats - First observed
rlm_task_unclaim - First observed
rlm_task_update - First observed
rlm_tenant_profile_create - First observed
rlm_tenant_profile_get - First observed
rlm_unlink_collection - First observed
rlm_upload_business_document - First observed
rlm_upload_document - First observed
rlm_upload_shared_document
TDQS
Each tool has a clearly distinct purpose: ask, context query, search, read line range, get chunk, recall memory, remember if novel, end-of-task commit, inbox review queue/plan/apply, and stats. No overlapping functionality.
All tools follow a consistent 'snipara_' prefix with snake_case descriptive names (e.g., snipara_context_query, snipara_end_of_task_commit). No mixing of conventions or abbreviations.
12 tools is well-scoped for a documentation and memory management server. It covers viewing, searching, querying, memory operations, inbox review workflow, and statistics without being overwhelming or sparse.
The tool surface covers core retrieval, memory storage, and inbox review. Minor gaps include the lack of an explicit update or delete for memories, but the server appears focused on append and recall. Overall coverage is strong.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent memory for AI agents with OAuth-backed hosted MCP access.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to maintain persistent, cross-session memory of codebase architecture, naming conventions, and decisions through MCP tools. Eliminates repetitive project re-explanation by automatically injecting stored context into every session with local-first SQLite storage and optional team sharing capabilities.4MIT
- AlicenseNot gradedqualityBmaintenanceLocal persistent memory for AI coding tools. Stores project context and conversation recall locally via MCP.1114MIT
- AlicenseNot gradedqualityCmaintenanceProvides local, project-aware memory for coding agents via MCP tools, lifecycle hooks, and a REST service, with no outbound network access.7,775Apache 2.0
- AlicenseBqualityAmaintenanceEnables AI coding agents to maintain persistent project context, including rules, decisions, environment intelligence, and Git history, using a local-first MCP server with automatic project detection and token-efficient retrieval.13MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alopez3006/snipara-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server