Expand description
MCP (Model Context Protocol) server for devboy-tools.
This crate implements the MCP server that exposes devboy functionality to AI assistants like Claude.
§Architecture
- Protocol: JSON-RPC 2.0 over stdin/stdout
- Transport: Newline-delimited JSON messages
- Tools: get_issues, get_merge_requests
- Pipeline: Output transformation (Markdown, truncation)
§Example
ⓘ
use devboy_mcp::McpServer;
use devboy_github::GitHubClient;
let mut server = McpServer::new();
server.add_provider(Arc::new(github_client));
server.run().await?;Re-exports§
pub use handlers::KNOWN_BUILTIN_TOOLS;pub use protocol::JSONRPC_VERSION;pub use protocol::JsonRpcRequest;pub use protocol::RequestId;pub use proxy::McpProxyClient;pub use proxy::ProxyManager;pub use proxy::ProxyTransport;pub use routing::IncompatibleTool;pub use routing::ProxyStatus;pub use routing::RoutingDecision;pub use routing::RoutingEngine;pub use routing::RoutingReason;pub use routing::RoutingTarget;pub use server::DeferredInit;pub use server::McpServer;pub use signature_match::MatchReport;pub use signature_match::ToolCatalogue;pub use signature_match::ToolMatch;pub use signature_match::build_report;pub use telemetry::TelemetryAuth;pub use telemetry::TelemetryBatch;pub use telemetry::TelemetryBuffer;pub use telemetry::TelemetryEvent;pub use telemetry::TelemetryPipeline;pub use telemetry::TelemetryStatus;pub use telemetry::TelemetryUploader;
Modules§
- handlers
- Built-in tool registry for MCP server.
- layered
- Per-session layered-pipeline state for the MCP server.
- prefetch_
adapter - Paper 3 — production
PrefetchDispatcheradapter. - protocol
- MCP protocol types based on JSON-RPC 2.0.
- proxy
- MCP proxy — connects to upstream MCP servers and proxies tool calls.
- routing
- Routing engine — decides which executor should handle a tool call.
- server
- MCP server implementation.
- signature_
match - Tool signature matching — decides which upstream tools have local counterparts.
- speculation
- Paper 3 — speculative tool-call dispatcher.
- telemetry
- Telemetry pipeline — records every tool invocation and ships batches to a configurable HTTP endpoint, even when the call was executed locally.
- tools
- MCP tool definitions.
- transport
- Transport layer for MCP JSON-RPC communication.
Structs§
- Additional
Context - Runtime context passed to the executor for each tool call.
- Executor
- Tool execution engine.
- Tool
Schema - Tool input schema with typed property definitions.
Enums§
- GitHub
Scope - Scope for GitHub API calls — determines the endpoint prefix.
- GitLab
Scope - Scope for GitLab API calls — determines the endpoint prefix.
- Provider
Config - Provider connection configuration with typed scope.
- Tool
Output - Typed result of tool execution.
Constants§
- SUPPORTED_
TOOLS - List of all tool names supported by the executor.
Traits§
- Tool
Enricher - Trait for plugins that dynamically modify tool schemas and transform arguments.
Type Aliases§
- Pipeline
Format Enricher - Backward-compatible alias.