Skip to main content

devboy_mcp/
lib.rs

1//! MCP (Model Context Protocol) server for devboy-tools.
2//!
3//! This crate implements the MCP server that exposes devboy functionality
4//! to AI assistants like Claude.
5//!
6//! # Architecture
7//!
8//! - **Protocol**: JSON-RPC 2.0 over stdin/stdout
9//! - **Transport**: Newline-delimited JSON messages
10//! - **Tools**: get_issues, get_merge_requests
11//! - **Pipeline**: Output transformation (Markdown, truncation)
12//!
13//! # Example
14//!
15//! ```ignore
16//! use devboy_mcp::McpServer;
17//! use devboy_github::GitHubClient;
18//!
19//! let mut server = McpServer::new();
20//! server.add_provider(Arc::new(github_client));
21//! server.run().await?;
22//! ```
23
24#![deny(rustdoc::broken_intra_doc_links)]
25#![deny(rustdoc::private_intra_doc_links)]
26#![deny(rustdoc::invalid_html_tags)]
27pub mod handlers;
28pub mod layered;
29pub mod prefetch_adapter;
30pub mod protocol;
31pub mod proxy;
32pub mod routing;
33pub mod server;
34pub mod signature_match;
35pub mod speculation;
36pub mod telemetry;
37pub mod tools;
38pub mod transport;
39
40pub use handlers::KNOWN_BUILTIN_TOOLS;
41pub use protocol::{JSONRPC_VERSION, JsonRpcRequest, RequestId};
42pub use proxy::{McpProxyClient, ProxyManager, ProxyTransport};
43pub use routing::{
44    IncompatibleTool, ProxyStatus, RoutingDecision, RoutingEngine, RoutingReason, RoutingTarget,
45};
46pub use server::{DeferredInit, McpServer};
47pub use signature_match::{MatchReport, ToolCatalogue, ToolMatch, build_report};
48pub use telemetry::{
49    TelemetryAuth, TelemetryBatch, TelemetryBuffer, TelemetryEvent, TelemetryPipeline,
50    TelemetryStatus, TelemetryUploader,
51};
52
53// Re-export executor types for consumers that use devboy-mcp as entry point
54pub use devboy_executor::{
55    AdditionalContext, Executor, GitHubScope, GitLabScope, PipelineFormatEnricher, ProviderConfig,
56    SUPPORTED_TOOLS, ToolEnricher, ToolOutput, ToolSchema,
57};