aether-mcp-servers 0.8.0

Built-in MCP tool servers for the Aether AI agent framework
Documentation

mcp-servers

Pre-built MCP tool servers for Aether agents. Each server runs in-process and is gated behind a feature flag so you only compile what you need.

Feature Server What it provides
coding CodingMcp File read/write/edit, bash, LSP integration, web fetch/search
skills SkillsMcp Slash commands and reusable skill prompts
tasks TasksMcp Hierarchical task management with dependencies
subagents SubAgentsMcp Spawn concurrent sub-agents in the foreground or as an MCP Task
review ReviewMcp Review agent-authored Markdown via native elicitation

Table of Contents

Documentation

Full API documentation is available on docs.rs.

Key entry points:

  • [CodingMcp] -- file I/O, shell, search, and LSP tools
  • CodingTools -- trait for custom tool backends
  • LspRegistry -- manages LSP daemon connections
  • TasksMcp -- hierarchical task management
  • SkillsMcp -- skill prompts and slash commands
  • SubAgentsMcp -- sub-agent orchestration
  • ReviewMcp -- Markdown artifact review and feedback workflow
  • [McpBuilderExt] -- register all servers in one call

Using with Aether (mcp.json)

These servers use Aether's in-memory transport type -- they run inside your agent process, not as separate subprocesses. Wire them up in mcp.json:

{
  "servers": {
    "coding": {
      "type": "in-memory",
      "args": ["--rules-dir", ".aether/skills"]
    },
    "skills": {
      "type": "in-memory",
      "args": ["--dir", ".aether/skills"]
    },
    "tasks": {
      "type": "in-memory"
    },
    "subagents": {
      "type": "in-memory",
      "args": ["--project-root", "."]
    },
    "review": {
      "type": "in-memory"
    }
  }
}

Each server key must match a factory registered with McpBuilder::register_in_memory_server(). Config loading only records a cloneable in-memory server specification and expands its variables. The factory is invoked exactly once during McpBuilder::spawn, after the runtime MCP handle exists. It receives the specification plus RuntimeServices containing the live McpHandle, root directory, and AgentDeps. The args array is parsed as CLI flags by each server:

Server Flag Default Description
coding --root-dir <path> cwd Workspace root for LSP and file operations
coding --rules-dir <path> (repeatable) none Explicit prompt directories for automatic read-triggered rules
coding --disable-lsp enabled Disable LSP-backed tools and aether-lspd daemon connections
skills --dir <path> (repeatable) required Prompt directories to scan
tasks --dir <path> . Base directory for task storage (creates .aether-tasks/ inside)
subagents --project-root <path> (alias: --dir) . Project root containing optional .aether/settings.json authored agents
review --root-dir <path> workspace root Base for relative artifact paths

To register factories and load the config:

use aether_core::mcp::mcp;
use mcp_servers::McpBuilderExt;

let builder = mcp("/my/project")
    .with_agent_deps(deps)
    .with_builtin_servers()
    .from_json_files(&["mcp.json"])?;

// Built-in factories have not run yet. They receive RuntimeServices here.
let runtime = builder.spawn().await?;

Custom factories use the same lazy signature:

builder.register_in_memory_server("custom", Box::new(|spec, services| {
    async move {
        CustomMcp::new(spec.args, services.root_dir, services.mcp).into_dyn()
    }
    .boxed()
}));

Programmatic Usage

Add to your Cargo.toml:

# Everything
mcp-servers = { path = "../mcp-servers" }

# Just coding tools
mcp-servers = { path = "../mcp-servers", default-features = false, features = ["coding"] }

Create and start servers directly:

use mcp_servers::{CodingMcp, SkillsMcp, TasksMcp};
use rmcp::ServiceExt;

// Create a coding server
let server = CodingMcp::new()
    .with_root_dir("/my/project".into())
    .into_dyn();

// Or with LSP support
let server = CodingMcp::new()
    .with_root_dir("/my/project".into())
    .with_lsp("/my/project".into())
    .into_dyn();

Server Documentation


Feature Flags

  • default -- coding, skills, tasks, subagents, and review servers
  • coding -- file ops, bash, LSP, web tools
  • skills -- slash commands and prompts
  • tasks -- task tracking (no dependency on coding)
  • subagents -- sub-agent spawning (implies coding, skills, tasks, review)
  • review -- Markdown artifact review through elicitation
  • all -- explicit alias enabling all built-in servers