CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Aptu Coder

clouatre-labs/aptu-coder
5STDIOregistry active
Summary

Built on tree-sitter, this server gives Claude structural insight into codebases across 11 languages without dumping raw files into context. You get directory trees with symbol counts, function signatures with line ranges, call graphs that trace dependencies, and targeted symbol lookups. The analyze_directory, analyze_file, and analyze_symbol tools replace the guess-and-grep pattern with precise structural queries. Benchmarks against Django and OpenFAST codebases show 46-68% token reductions on migration and audit tasks. Supports stdio or HTTP transport, with HTTP recommended for multi-agent setups where goose spawns delegates. Output caps and pagination keep large codebases manageable. Three editing tools and a filtered exec_command round out the kit for actual code changes.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

aptu-coder

crates.io SLSA Level 3 OpenSSF Best Practices

Standalone MCP server for code structure analysis using tree-sitter. OpenSSF silver certified: fewer than 1% of open source projects reach this level.

[!NOTE] Native agent tools (regex search, path matching, file reading) handle targeted lookups well. aptu-coder handles the mechanical, non-AI work: mapping directory structure, extracting symbols, and tracing call graphs. Offloading this to a dedicated tool reduces token usage and speeds up coding with better accuracy.

Benchmarks

Auth migration task on Claude Code against Django (Python) source tree. Full methodology.

ModeSonnet 4.6Haiku 4.5
MCP112k tokens, $0.39406k tokens, $0.42
Native276k tokens, $0.95473k tokens, $0.53
Savings59% fewer tokens, 59% cheaper14% fewer tokens, 21% cheaper

AeroDyn integration audit task on Claude Code against OpenFAST (Fortran) source tree. Full methodology.

ModeSonnet 4.6Haiku 4.5
MCP472k tokens, $1.65687k tokens, $0.72
Native877k tokens, $2.852162k tokens, $2.21
Savings46% fewer tokens, 42% cheaper68% fewer tokens, 68% cheaper

Overview

aptu-coder is a Model Context Protocol server that gives AI agents precise structural context about a codebase: directory trees, symbol definitions, and call graphs, without reading raw files. It supports 18 languages (see Supported Languages) and integrates with any MCP-compatible orchestrator.

Supported Languages

All languages are enabled by default. Disable individual languages at compile time via Cargo feature flags.

LanguageExtensionsFeature flag
Astro.astroalways-on (regex via TypeScript frontmatter extractor)
C/C++.c, .cc, .cpp, .cxx, .h, .hpp, .hxxlang-cpp
C#.cslang-csharp
CSS.csslang-css (tree-sitter; regex fallback when disabled)
Fortran.f, .f77, .f90, .f95, .f03, .f08, .for, .ftnlang-fortran
Go.golang-go
HTML.html, .htmlang-html (stub; no extraction)
Java.javalang-java
JavaScript.js, .mjs, .cjslang-javascript
JSON.jsonalways-on (regex; first-level key extraction)
Kotlin.kt, .ktslang-kotlin
Markdown.md, .mdxlang-markdown
Python.pylang-python
Rust.rslang-rust
TOML.tomlalways-on (regex; section header extraction)
TSX.tsxlang-tsx
TypeScript.tslang-typescript
YAML.yaml, .ymllang-yaml (tree-sitter; regex fallback when disabled)

Installation

Homebrew (macOS and Linux)

brew install clouatre-labs/tap/aptu-coder

Update: brew upgrade aptu-coder

cargo-binstall (no Rust required)

cargo binstall aptu-coder

cargo install (requires Rust toolchain)

cargo install aptu-coder

Quick Start

Build from source

cargo build --release

The binary is at target/release/aptu-coder.

Configure MCP Client

Two transports are available. Streamable HTTP is recommended when using orchestrators that spawn delegates (e.g. goose coder): a single server process is shared across the orchestrator and all agents, eliminating extension-drift that occurs when each stdio subprocess gets its own isolated instance.

Streamable HTTP (recommended for multi-agent setups)

With Homebrew, one command starts the server on login and keeps it running:

brew services start aptu-coder

The Homebrew formula starts the server on port 49200 by default. Then add the extension once to ~/.config/goose/config.yaml:

extensions:
  aptu-coder:
    type: streamable_http
    uri: http://127.0.0.1:49200/mcp
    name: aptu-coder
    timeout: 300

Or for Claude Code:

claude mcp add --transport http aptu-coder http://127.0.0.1:49200/mcp

To use a different port, set APTU_CODER_PORT before restarting:

APTU_CODER_PORT=4000 brew services restart aptu-coder

To start directly without brew services:

aptu-coder --port 49200
# or equivalently
APTU_CODER_PORT=49200 aptu-coder

stdio (single-client use)

Suitable when only one process needs the server. The client owns the process lifecycle and spawns it automatically:

claude mcp add --transport stdio aptu-coder -- aptu-coder

Or add manually to .mcp.json at your project root (shared with your team via version control):

{
  "mcpServers": {
    "aptu-coder": {
      "command": "aptu-coder",
      "args": []
    }
  }
}

Tools

All optional parameters may be omitted. Shared optional parameters for analyze_directory, analyze_file, and analyze_symbol:

ParameterTypeDefaultDescription
summarybooleanautoCompact output; auto-triggers above 50K chars
cursorstring--Pagination cursor from a previous response's next_cursor
page_sizeinteger100Items per page
ToolPurposeLanguages
analyze_directoryDirectory tree with LOC, function, and class counts; respects .gitignoreall
analyze_fileFunctions, classes, and imports with signatures and line ranges; returns graceful fallback (line count, file head, no AST) for unsupported extensionsall
analyze_moduleLightweight function and import index (~75% smaller than analyze_file); returns graceful fallback (empty index with note) for unsupported extensionsall
analyze_symbolCall graph for a named symbol across a directory; callers, callees, call depthall
edit_overwriteCreate or overwrite a file; creates parent directoriesany file
edit_replaceReplace a unique exact text block; errors if zero or multiple matches; empty new_text deletes the block; CRLF normalized before matchingall
exec_commandRun a shell command; returns stdout, stderr, exit code; output capped and filtered; optional timeout_secs (kill on expiry) and drain_timeout_secs (post-exit drain window); heredoc missing delimiter rejected before spawnany

Tool parameters, constraints, and examples are available via your MCP client's tool inspector or tools/list response.

Output Management

For large codebases, several mechanisms prevent context overflow.

Pagination

analyze_file and analyze_symbol append a NEXT_CURSOR: line when output is truncated. Pass the token back as cursor to fetch the next page. summary=true and cursor are mutually exclusive; passing both returns an error.

# Response ends with:
NEXT_CURSOR: eyJvZmZzZXQiOjUwfQ==

# Fetch next page:
analyze_symbol path: /my/project symbol: my_function cursor: eyJvZmZzZXQiOjUwfQ==

exec_command output caps

exec_command applies three independent byte-level caps to prevent large command outputs from flooding the context:

StreamCapBehavior
stdout30,000 charsTail-preserving; keeps the last 30k chars
stderr10,000 charsTail-preserving; errors appear at the end
combined output_text50,000 charsSafety net after interleaving

The 30k stdout cap is data-driven: analysis of 27,981 observed exec_command calls shows only 0.33% exceed this limit. When any cap fires, output_truncated: true is set in the response and recorded in the JSONL metrics.

drain_timeout_secs controls how long the server waits after the child exits for any background subprocess still holding the pipe open. Default is 500 ms (0 or omitted). Negative values return INVALID_PARAMS. When the drain window expires before the pipe closes, output_truncated: true is set.

exec_command output filters

A built-in filter table suppresses per-file noise from chatty CLI tools before output reaches the model. Filters apply to stdout, stderr, and interleaved output on success only; raw output is always preserved on failure.

CommandBehavior
git pullStrips diff-stat noise (pipe bars, create mode, delete mode, rename, mode change lines); empty output replaced with ok (up-to-date)
git fetchStrips From and ref-range lines; caps at 10 lines; empty output replaced with ok fetched
git pushStrips remote: progress lines and To destination lines; caps at 10 lines; empty output replaced with ok pushed
git logCaps at 20 lines
git statusCaps at 20 lines
git showStrips patch hunks (@@ headers and +/- diff lines); caps at 200 lines
git commitStrips GPG signing and gitleaks hook output; caps at 10 lines; empty output replaced with ok committed
git diffStrips ANSI escape sequences; caps at 100 lines; empty output replaced with ok (working tree clean)
git addStrips gitleaks hook output; caps at 5 lines; empty output replaced with ok staged
cargo buildStrips Compiling / Checking / Downloading / Fresh lines; empty output replaced with ok (build clean)
cargo testStrips Compiling / Checking / Fresh lines

Project-local rules can be added in .aptu/filters.toml. Parse errors and unrecognized schema_version values (version != 1) fall back to the built-in table with a logged warning; no crash occurs. When a filter fires, filter_applied in structuredContent identifies which rule matched.

Non-Interactive Pipelines

In single-pass subagent sessions, prompt caches are written but never reused. Benchmarks showed MCP responses writing ~2x more to cache than native-only workflows, adding cost with no quality gain. Set DISABLE_PROMPT_CACHING=1 (or DISABLE_PROMPT_CACHING_HAIKU=1 for Haiku-specific pipelines) to avoid this overhead.

The server's own instructions expose a 4-step recommended workflow for unknown repositories: survey the repo root with analyze_directory at max_depth=2, drill into the source package, run analyze_module on key files for a function/import index (or analyze_file when signatures and types are needed), then use analyze_symbol to trace call graphs. MCP clients that surface server instructions will present this workflow automatically to the agent.

Environment Variables

Cache and runtime

VariableDefaultDescription
APTU_CODER_DIR_CACHE_CAPACITY20LRU cache size for directory-analysis results.
APTU_CODER_DISK_CACHE_DIR$XDG_DATA_HOME/aptu-coder/analysis-cacheDirectory for the L2 on-disk call-graph cache used by analyze_symbol. Created automatically if it does not exist.
APTU_CODER_DISK_CACHE_DISABLEDunsetSet to 1 to disable the L2 disk cache entirely.
APTU_CODER_EXEC_CACHE_CAPACITY64LRU cache size for exec_command results.
APTU_CODER_EXEC_CACHE_TTL_SECS10TTL in seconds for exec_command result cache.
APTU_CODER_FILE_CACHE_CAPACITY100LRU cache size for file-analysis results.
APTU_CODER_METRICS_EXPORT_FILEunsetAbsolute path for a one-shot JSONL metrics export on shutdown.
APTU_CODER_PORTunsetPort for streamable HTTP mode. Equivalent to --port N; --port takes precedence. When unset and --port is not passed, stdio mode is used.
APTU_CODER_PROFILEunsetTool subset: edit (edit tools + exec_command only), analyze (analyze tools + exec_command only). Also settable per-session via io.clouatre-labs/profile in MCP _meta.
APTU_SHELLunsetShell for exec_command. Defaults to bash then /bin/sh.

Telemetry

VariableDefaultDescription
DISABLE_PROMPT_CACHINGunsetSet to 1 to disable prompt caching (recommended for single-pass subagent sessions).
DISABLE_PROMPT_CACHING_HAIKUunsetSet to 1 to disable prompt caching for Haiku-specific pipelines only.
OTEL_EXPORTER_OTLP_ENDPOINTunsetOTLP HTTP endpoint URL (e.g., http://localhost:4318). When set, enables trace, log, and metric export via OTLP/HTTP; noop providers when unset.
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTunsetReserved per OTel GenAI conventions; aptu-coder does not implement this -- bounded parameters are recorded as span attributes instead.
XDG_DATA_HOME~/.local/shareBase directory for daily-rotated JSONL metrics files ($XDG_DATA_HOME/aptu-coder/metrics-YYYY-MM-DD.jsonl, 30-day retention).

Observability

The server emits two parallel, independent telemetry streams.

JSONL metrics (always-on) are written daily-rotated to $XDG_DATA_HOME/aptu-coder/ (fallback: ~/.local/share/aptu-coder/) regardless of configuration. Each record captures tool name, duration, output size, and result status. Files are retained for 30 days. See docs/OBSERVABILITY.md for the full schema.

OpenTelemetry export (opt-in) is enabled when OTEL_EXPORTER_OTLP_ENDPOINT is set to an OTLP HTTP endpoint URL. When set, the server initializes OpenTelemetry trace, log, and meter providers and exports asynchronously via OTLP/HTTP. When unset, noop providers are used with zero runtime overhead.

Each tool invocation is wrapped in a span carrying OpenTelemetry GenAI semantic attributes (gen_ai.system, gen_ai.operation.name, gen_ai.tool.name). W3C Trace Context is extracted from the MCP _meta field on each call, allowing MCP clients to propagate their trace context so tool spans appear as children in a distributed trace.

For the span attribute policy, the never-record list, and details on what is instrumented, see OBSERVABILITY.md at the repository root.

Documentation

  • AGENTS.md - Contributor reference: project structure, commands, rmcp footguns, tool parameter constraints
  • ARCHITECTURE.md - Design goals, module map, data flow, language handler system, caching strategy
  • CONTRIBUTING.md - Development workflow, commit conventions, PR checklist
  • DESIGN-GUIDE.md - Design decisions, rationale, and replication guide for building high-performance MCP servers
  • MCP Best Practices - Best practices for agentic loops, orchestration patterns, MCP tool design, memory management, and safety controls
  • OBSERVABILITY.md - Metrics schema, JSONL format, and retention policy
  • ROADMAP.md - Development history and future direction
  • SECURITY.md - Security policy and vulnerability reporting

License

Apache-2.0. See LICENSE for details.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
Packagehttps://github.com/clouatre-labs/aptu-coder/releases/download/v0.15.4/aptu-coder-0.15.4-aarch64-apple-darwin.mcpb
TransportSTDIO
UpdatedJun 7, 2026
View on GitHub