Skip to content
Arxo Arxo

Advanced

This page covers caching, configuration, and performance for the MCP server.


Chain tools for agent architecture and config workflows.

1. analyze_architecture({ project_path: "." })
↓ Get agent and OpenClaw architecture metrics and findings
2. Use findings and recommendations to suggest fixes

Validate or generate config before running analysis:

1. arxo_config_validate({ project_path: "." })
↓ If valid
2. analyze_architecture({ project_path: "." })

Or bootstrap a new project:

1. arxo_config_suggest({ project_path: "." })
↓ Paste suggested arxo.yaml into project
2. analyze_architecture({ project_path: "." })

The MCP server uses an in-memory cache with configurable TTL and size limits.

A cache entry is keyed by:

  • Project path (absolute path)
  • Config hash (SHA-256 of arxo.yaml if present)

Implication: Changing project path or config invalidates the cache.

Goal: Fast feedback, tolerate slightly stale data

{
"command": "/path/to/arxo-mcp",
"args": ["--cache-ttl", "600", "--max-cache-entries", "512000"]
}
  • TTL: 10 minutes (600s)
  • Size: 512k entries

Goal: No stale results

{
"command": "/path/to/arxo-mcp",
"args": ["--cache-ttl", "0"]
}

For CI pipelines, using the CLI (arxo analyze) is usually better. See CLI Comparison.

  • TTL expires
  • Config file (arxo.yaml) changes
  • Max cache entries exceeded (LRU eviction)
  • Restart the MCP server (clears all cache)

Enable debug logging to see cache hits/misses: RUST_LOG=arxo_mcp=debug.


For monorepos, analyze each package separately:

analyze_architecture({ project_path: "./packages/frontend" })
analyze_architecture({ project_path: "./packages/backend" })

Each project has its own cache key.


  • Exclude large directories — Use config or .arxoignore to exclude node_modules/, vendor/, .venv/, target/, dist/, build/.
  • Increase cache TTL — For repeated analysis on the same project, e.g. --cache-ttl 600.

  • The MCP server does not execute project code; it only reads and analyzes it.
  • It has read-only access to the project path and config.
  • Avoid putting secrets in arxo.yaml; use environment variables where the CLI supports them.

  • Development: RUST_LOG=arxo_mcp=info or --log-level info
  • Debugging: RUST_LOG=arxo_mcp=debug or --log-level debug
  • Quiet: RUST_LOG=arxo_mcp=warn

Logs go to stderr and do not interfere with the JSON-RPC stream.