Skip to main content
Glama

arcana-mcp

Semantic vector DB as an MCP server for Claude Code — SQLite + FTS5 + local ONNX embeddings.

Gives Claude persistent, searchable project knowledge across conversations. Index files, store findings, search semantically — all through MCP tools.

Prerequisites

  • Python 3.12+

  • uv (recommended) — fast Python package manager that provides uvx for running tools without global installs:

    # macOS / Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Windows
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # Or via Homebrew
    brew install uv

On first use, arcana-mcp downloads the embedding model (~130MB) to ~/.arcana/models. This is automatic but requires internet.

Related MCP server: ClaudeX

Install

claude plugin marketplace add samelie/arcana-mcp
claude plugin install arcana-mcp

This installs the MCP server, skills (/arcana:arcana-search, /arcana:arcana-absorb), command (/arcana:search), agent (arcana-researcher), and orientation protocol automatically.

Manual (with uvx)

pip install arcana-mcp

Add to your .mcp.json:

{
  "mcpServers": {
    "arcana": {
      "command": "uvx",
      "args": ["arcana-mcp", "serve"]
    }
  }
}

uvx runs arcana-mcp in an isolated environment — no need to manage virtualenvs yourself.

Manual (without uvx)

If you prefer not to use uv, run the server directly:

pip install arcana-mcp
{
  "mcpServers": {
    "arcana": {
      "command": "arcana-mcp",
      "args": ["serve"]
    }
  }
}

Make sure arcana-mcp is on your PATH (e.g. installed in an active virtualenv or with pipx).

Tools

Tool

Description

arcana_add_resource

Index a file or directory into the DB

arcana_add_memory

Store a memory entry with embedding

arcana_search

Hybrid semantic + FTS5 search (best default)

arcana_find

Pure semantic (cosine similarity) search

arcana_grep

Keyword/regex search via FTS5

arcana_read

Read full content of a resource

arcana_ls

List direct children at a URI

arcana_tree

Show recursive tree at a URI

arcana_stat

Get metadata + chunk count for a resource

arcana_rm

Remove a resource (with optional recursive)

arcana_mkdir

Create a directory at a URI

arcana_mv

Move/rename a resource

Skills

/arcana:arcana-absorb <path>

Generates knowledge files optimized for Claude retrieval. Surveys a directory, synthesizes structured knowledge, and indexes it into Arcana. Re-runnable — updates stale files, removes orphans.

Quick access to search, store, and browse project knowledge. Use arcana_search for hybrid search, arcana_add_memory for quick findings, arcana_add_resource for indexing files.

Commands

/arcana:search <query>

Quick-invoke search — runs arcana_search with the given query and returns results directly.

Agents

arcana-researcher

Lightweight agent for delegating knowledge searches to a subagent. Searches Arcana, reads top results, returns a focused summary. Keeps main conversation context clean.

Configuration

Environment Variable

Default

Description

ARCANA_DB_PATH

~/.arcana/context.db

SQLite database path

ARCANA_MODEL_CACHE

~/.arcana/models

ONNX model cache directory

Architecture

  • SQLite + FTS5: Full-text search with trigram tokenization

  • fastembed: Local ONNX embeddings (BAAI/bge-small-en-v1.5, 384 dimensions)

  • Hybrid search: 0.7 × semantic + 0.3 × FTS5 for best-of-both ranking

  • Markdown chunking: Splits on # headings into ~2000 char segments

  • MCP transport: stdio via FastMCP

Releasing

From the monorepo root, commit and push your changes, then run:

# Release the current version in pyproject.toml
./packages/arcana-mcp/scripts/release.sh

# Or bump + release in one step
./packages/arcana-mcp/scripts/release.sh 0.2.0

The script will:

  1. Validate you're on main with a clean tree

  2. Optionally bump pyproject.toml and commit

  3. Wait for the monorepo sync workflow to push to samelie/arcana-mcp

  4. Verify the remote version matches

  5. Create a GitHub release (v0.x.x) which triggers the PyPI publish workflow

License

MIT

Available Tools

12 tools
arcana_add_memoryB

Store a memory entry as a resource with embedding.

Args:
    role: Memory role (e.g. 'user', 'assistant', 'system').
    content: The memory content to store.
ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose behavioral traits such as whether embedding is performed, if memory is indexed, or any side effects like overwriting. Only states action without deeper context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short with clear purpose stated first. 'Args' section is present and readable. No redundant information. Could be slightly more structured but effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has only 2 parameters and output schema exists (not shown). Description lacks details on return values, embedding process, and persistence. Complete for basic use but misses context that could aid correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must fully explain parameters. It provides basic explanation for 'role' (with examples) and 'content', but lacks details like format, max length, or constraints. Insufficient compensation for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'store' and resource 'memory entry as a resource with embedding'. It distinguishes from sibling tool 'arcana_add_resource' which likely handles different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings like arcana_add_resource. No when-not-to-use or alternative suggestions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_add_resourceB

Add a file or directory as a resource into the context database.

Args:
    path: Local file or directory path to index.
    to: Target arcana:// URI (optional, auto-determined if empty).
    reason: Why this resource is being added.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
toNo
reasonNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only states the action (adding a resource) but does not disclose potential side effects, prerequisites (e.g., path existence), or reversibility. The hint about auto-determination for 'to' is helpful but insufficient for full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a one-line summary and a three-line Args block. Every sentence adds value, and the format is front-loaded with the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, 0% schema coverage, and no annotations, the description is adequate but misses key context. It does not mention return values (output schema exists), prerequisites, or how it interacts with sibling tools like arcana_ls or arcana_stat. The simple task requires slightly more detail for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. The Args section adds basic meaning for each parameter (path as file/directory to index, to as target URI, reason as justification). However, it lacks format constraints or detailed semantics, providing only minimal improvement over raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a file or directory as a resource into the context database. It uses a specific verb and resource, distinguishing it from sibling tools like arcana_add_memory or arcana_mkdir.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. While the parameter description for 'to' notes it is auto-determined if empty, there is no explicit context for when to use arcana_add_resource over siblings like arcana_add_memory or arcana_mkdir.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_findA

Semantic search — embed query, cosine similarity against all chunks.

Args:
    query: Natural language search query.
    target_uri: Scope search to a specific arcana:// URI prefix (optional).
    limit: Max number of results (default 10).
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
target_uriNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, description explains algorithm (embed, cosine similarity) and scope, implying a safe read operation. Does not detail rate limits or performance, but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single-line summary followed by clean docstring-style parameter list. Every sentence adds value; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core function, parameter meanings, and algorithm. Has output schema which covers return values, so missing output details is acceptable. Lacks edge cases but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description compensates fully by explaining each parameter: query as natural language, target_uri as optional scope, limit as max results with default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states semantic search using embedding and cosine similarity, but does not explicitly distinguish from sibling arcana_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives optional scope and limit, but no when-to-use or when-not compared to alternatives like arcana_grep or arcana_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_grepB

Keyword/regex search — FTS5 for simple terms, Python re fallback.

Args:
    uri: arcana:// URI to search within.
    pattern: Search pattern (keyword or regex).
    case_insensitive: Case-insensitive matching.
ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoarcana://
patternNo
case_insensitiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals the search engine behavior (FTS5 vs Python re) but omits side effects, performance implications, or whether it is read-only. Adequate but incomplete for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a header and Args list. Front-loaded with the core purpose. All listed parameters are covered, though some could benefit from more detail. Good efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, covering return values. The tool has 3 optional params, but description omits behavior with empty pattern or default uri scope. Adequate but missing contextual details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It explains 'pattern' can be keyword or regex and 'case_insensitive' is boolean, but no examples syntax or details on 'uri' semantics beyond default. Insufficiently detailed for full understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs keyword/regex search, specifying FTS5 for simple terms and Python re fallback. This distinguishes it from sibling tools like arcana_search or arcana_find by giving engine details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies keyword/regex use but does not mention when not to use it or cite alternative tools like arcana_search or arcana_find for different search needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_lsB

List direct children at a arcana:// URI.

Args:
    uri: arcana:// URI to list (default: root).
ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoarcana://

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so description must disclose behavior. It only states 'list direct children' but omits error handling, auth requirements, or read-only nature. No contradictions with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief but clear. The args section is slightly informal but effective. Could be more structured, but no unnecessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool, the description covers the basic purpose and parameter. However, it does not mention output format or any behavioral details, relying on the output schema. Adequate but could hint at what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the uri parameter beyond the schema, specifying it is an arcana:// URI and that default is root. With 0% schema coverage, this explanation is essential and helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists direct children at an arcana:// URI. It uses specific verb and resource, distinguishing it from recursive listing tools like arcana_tree.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus siblings like arcana_tree, arcana_read, or arcana_search. No prerequisites or context for appropriate usage are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_mkdirA

Create a directory at a arcana:// URI.

Args:
    uri: arcana:// URI for the new directory.
ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'Create a directory'. It does not disclose what happens if the directory already exists, whether it creates intermediate parents, or any required permissions. This is insufficient for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence for the action and a bullet for the parameter. No redundant information, and the structure (action first, then args) is clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description covers the basics. However, it lacks details about behavior on existing directories, error handling, and requirements, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It does so by specifying the URI format ('arcana:// URI'), which adds context beyond the raw 'string' type. However, it could be more specific (e.g., 'must end with /').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a directory') and the target resource ('at a arcana:// URI'). The tool name 'arcana_mkdir' aligns perfectly, and it is distinct from siblings like 'arcana_rm' or 'arcana_ls'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or not use this tool. The purpose is implied by the name and description, but there are no prerequisites, error conditions, or alternative suggestions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_mvC

Move/rename a resource.

Args:
    from_uri: Source arcana:// URI.
    to_uri: Destination arcana:// URI.
ParametersJSON Schema
NameRequiredDescriptionDefault
from_uriYes
to_uriYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does not disclose whether the move is atomic, if it overwrites destinations, or what happens on failure. For a mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and lists args consecutively. While concise, it omits important information; brevity comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and an output schema (not described), the description fails to explain return values, error behavior, or preconditions. For a move operation that can fail, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds 'Source arcana:// URI' and 'Destination arcana:// URI', which provides context beyond the plain string type. However, it lacks details like constraints (e.g., valid schemes, existence requirements).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Move/rename a resource,' which is a specific verb and resource. However, it does not differentiate from sibling tools like arcana_rm (delete) or arcana_add_resource (create), though the operation is distinct enough. Could be improved by contrasting with copy or similar operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no mention of prerequisites or conditions (e.g., source must exist, destination not occupied). The agent receives no help in deciding between this and similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_readB

Read full content of a resource (concatenated chunks in order).

Args:
    uri: arcana:// URI to read.
ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses that content is concatenated chunks in order, which is useful. But lacks details on error handling, idempotency, auth, or what happens for invalid URIs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences. First sentence states core action, second specifies the argument. No wasted words, front-loaded with essential info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values are covered. However, with 11 sibling tools, the description lacks context on when to use this vs. searching or grepping. Could mention it's for direct URI-based reads.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage; the description adds the URI format 'arcana://' which clarifies the expected scheme. This adds meaningful context beyond the schema's type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Read full content of a resource' which distinguishes from siblings like arcana_ls (list) or arcana_stat (metadata). The phrase 'concatenated chunks in order' adds specificity. However, 'resource' is vague and could be clearer within the arcana domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or alternatives. The description implies use when full content is needed, but does not mention when not to use (e.g., for large resources) or contrast with arcana_search, arcana_grep, etc.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_rmA

Remove a resource (CASCADE deletes chunks, FTS triggers clean up).

Args:
    uri: arcana:// URI to remove.
    recursive: Remove all resources under this URI prefix.
ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Mentions cascade and FTS cleanup, which adds important context beyond the basic action. However, with no annotations, it lacks details on permissions, irreversibility, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise with no wasted words; purpose and key details are front-loaded in a single line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return values are not needed. However, for a deletion tool, it should mention permanence, required auth, or potential side effects to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Describes the URI format and recursive behavior, adding meaning beyond the schema field names, despite the schema coverage being low.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Remove a resource' with specific details about cascade and FTS cleanup, distinguishing it from other file operation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes what the tool does but offers no guidance on when to use recursive mode or when to choose alternatives. No explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_statC

Get metadata for a resource.

Args:
    uri: arcana:// URI to get metadata for.
ParametersJSON Schema
NameRequiredDescriptionDefault
uriYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'Get metadata' without explaining what metadata is included, whether it is a read-only operation, or any side effects. Lacks depth expected for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise at two sentences with no fluff. However, it could benefit from structured formatting like bullet points. Still, it is efficient for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema (not shown), the description might be minimally sufficient for a simple metadata retrieval tool with one parameter. However, it lacks details on what metadata is returned, and with multiple sibling tools, more context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The description mentions 'uri: arcana:// URI' but adds no details about format, examples, or constraints beyond what the schema already states. Minimal value added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get metadata for a resource', providing a specific verb and resource. However, it does not differentiate from sibling tools like arcana_read (read content) or arcana_ls (list resources), so a higher score is not justified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like arcana_find or arcana_ls. The description simply states what it does without context of when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arcana_treeB

Show recursive tree at a arcana:// URI.

Args:
    uri: arcana:// URI to show tree for (default: root).
ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoarcana://

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It doesn't disclose read-only nature, recursion depth, or any side effects. For a tool that likely reads data, this is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one line for purpose, one for parameter. Front-loaded main action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter, clear purpose, and existing output schema, the description is nearly complete. Could add read-only hint or depth limit, but adequate for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description adds context: 'arcana:// URI' and notes default is 'root' (aligns with schema default 'arcana://'). Provides minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Show recursive tree at a arcana:// URI' clearly states the tool's action (show), resource (recursive tree), and scope (URI). It distinguishes from siblings like arcana_ls (flat list) and arcana_stat (status), earning a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The description implies usage for viewing hierarchy, but doesn't compare with arcana_ls or arcana_find. Missing scenarios or exclusions.

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.

  1. 12 tool updatesv0.1.3
    • First observedarcana_add_memory
    • First observedarcana_add_resource
    • First observedarcana_find
    • First observedarcana_grep
    • First observedarcana_ls
    • First observedarcana_mkdir
    • First observedarcana_mv
    • First observedarcana_read
    • First observedarcana_rm
    • First observedarcana_search
    • First observedarcana_stat
    • First observedarcana_tree

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: memory vs resource addition, different search modes (semantic, keyword, hybrid), and clear navigation vs content operations. No ambiguity.

Naming Consistency5/5

All tools follow the consistent pattern 'arcana_verb' or 'arcana_verb_noun' with snake_case (e.g., arcana_add_memory, arcana_ls, arcana_search). Conventions are uniform.

Tool Count5/5

12 tools is well-scoped for a hierarchical resource and memory system, covering CRUD, navigation, search, and metadata retrieval without bloat.

Completeness4/5

Covers addition, reading, deletion, movement, search, and listing. Missing an update/modify tool for resources or memory, which is a minor but notable gap.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Persistent memory + FTS5 full-text search for Claude Code conversation history. Indexes ~/.claude/projects/ JSONL into SQLite, exposes 10 MCP tools (store/recall/search memories, browse sessions, get summaries) plus prompts. Includes a web UI for visual exploration
    10
    94
    91
    MIT

Latest Blog Posts

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/samelie/arcana-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server