我们正在逐步淘汰基础版的mcp-ectors服务器,因为我们开源了许多更令人兴奋的AI代理平台。请查看:Greentic-ai
企业级MCP服务器,或简称mcp-ectors,是一款专为企业设计的高性能且安全的MCP服务器,旨在实现大型语言模型(LLMs)与各种工具、资源及工作流程提示之间的无缝集成和交互。这款强大的服务器充当了桥梁的角色,就像一个USB接口,使LLMs能够访问多种能力,从而支持代理和代理型AI。它使用Rust、Wasm和actors构建,优化了性能、安全性和可扩展性,使其非常适合企业环境。MCPEctors可以支持许多不同的MCP路由器,每个路由器都在一个安全的容器化环境中运行[Wasm]。通过wasix-mcp组件接口,它们可以安全地暴露其MCP工具、资源和提示,而不会对运行mcp路由器的服务器造成损害。
注意:mcp-ectors的名字来源于“MCP企业角色服务器”,与创建者的姓氏无关,尽管听起来可能如此 😄
要开始使用mcp-ectors,请确保安装以下内容:
克隆仓库:
git clone https://github.com/yourusername/mcp-ectors.git
cd mcp-ectors
运行服务器: 克隆仓库后,导航到项目文件夹并运行服务器:
cargo run
从Goose Desktop开始: 在Goose Desktop(一个配套工具)中,你可以添加扩展,选择SSE作为传输,并使用以下URL:
http://localhost:8080/sse
运行服务器后,在Goose Desktop应用程序中,你可以请求增加计数器或获取当前值。
尝试Hello World问候语。
MCP-ectors允许您通过路由器特征创建和注册新的路由器。要添加一个新的路由器,为您的新路由器实现Router特征,参考现有的CounterRouter或HelloWorldRouter示例。
use exports::wasix::mcp::router::{Role::User, Annotations, ToolsCapability, ResourcesCapability, PromptsCapability, CallToolResult, Content::Text, GetPromptResult, Guest, McpResource, Prompt, PromptMessage, PromptMessageContent, PromptMessageRole, ReadResourceResult, ResourceContents, ResourceError, ServerCapabilities, TextContent, TextResourceContents, Tool, ToolError, PromptError, Value};
wit_bindgen::generate!({
path: "wit/world.wit",
world: "mcp",
});
#[derive(Clone)]
pub struct MyRouter;
impl Guest for MyRouter {
fn name() -> String {
"MyRouter".to_string()
}
fn instructions() -> String {
"Your instructions go here".to_string()
}
fn capabilities() -> ServerCapabilities {
ServerCapabilities {
tools: Some(ToolsCapability{ list_changed: Some(true) }),
resources: Some(ResourcesCapability{ subscribe: Some(true), list_changed: Some(false)}),
prompts: Some(PromptsCapability{ list_changed: Some(true) }),
}
}
fn list_tools() -> Vec<Tool> {
...
}
fn call_tool(
tool_name: String,
arguments: Value,
) -> Result<CallToolResult, ToolError> {
...
}
fn list_resources() -> Vec<McpResource> {
...
}
fn read_resource(
uri: String,
) -> Result<ReadResourceResult, ResourceError> {
...
}
fn list_prompts() -> Vec<Prompt> {
...
}
fn get_prompt(prompt_name: String) -> Result<GetPromptResult, PromptError> {
...
}
}
export!(YourRouter);
在MCP中,工具、资源和提示被注册为routerid_tool、routerid_prompt和routerid_resource以保持一切井然有序。路由器服务管理器通过将.wasm文件放入服务器加载的wasm目录中来添加新的路由器。
只需通过mcp-ectors start --wasm_path wasm启动服务器并将您的MPC路由器wasm放入目录即可。
服务器构建器:
server_builder确定传输层。目前支持SSE。未来版本将包括stdio和wasi传输。路由器服务管理器:
RouterServiceManager负责注册多个路由器,并确保每个路由器可以在不需要新连接的情况下处理请求。日志配置:
LogConfig结构进行定制。传输Actor:
JsonRPCMessages发送给客户端。它用于通过传输层在服务器和客户端之间进行通信。路由器:
标准Actor:
let log_config = LogConfig {
log_dir: "logs".to_string(),
log_file: "server.log".to_string(),
level: Level::INFO,
};
MCP SSE服务器(mcp-ectors)是为高性能、可扩展性和易用性而构建的。借助actors、Rust以及管理多个路由器的清晰架构,它使与LLMs、工具和资源的工作变得轻松。无论是研究人员、开发者还是AI爱好者,mcp-ectors都将帮助您将LLMs与所需的工具和资源集成,以实现高级代理型AI工作流。
欢迎贡献、测试和扩展系统以适应您的企业用例。您可以依赖mcp-ectors来驱动下一代AI应用。如果您的公司希望创建自定义路由器或合作,请联系Maarten Ectors。