返回市场
艾丽西娅-mcp

艾丽西娅-mcp

作者:keithagroves21 星标更新:2025-03-31

项目介绍

使用Bun和Elysia的MCP服务器

这是一个使用Bun和Elysia网络框架实现的Model Context Protocol (MCP)服务器。该项目使您能够创建高性能的MCP服务器,通过标准化接口向LLMs暴露资源、工具和提示。

特性

  • 对于Bun和Elysia的Server-Sent Events (SSE)传输实现
  • 完整支持MCP协议,包括资源、工具和提示
  • 高性能得益于Bun的JavaScript运行时
  • 支持TypeScript,并具有正确的类型定义
  • 创建与MCP兼容服务器的易于使用的API

先决条件

  • 在您的系统上安装Bun
  • 对TypeScript和Elysia的基本熟悉

安装

# 克隆仓库
git clone <your-repo-url>
cd mcp-server

# 安装依赖
bun install

使用

启动服务器

# 启动服务器
bun start

# 开发模式下启动热重载
bun dev

构建生产环境

# 构建生产环境
b bun run build

这将在dist目录中创建一个最小化的Node.js兼容构建。

开发

项目结构

  • src/index.ts - 服务器的主要入口点
  • src/SSEElysiaTransport.ts - 对于Bun和Elysia的SSE传输实现

创建MCP服务器

import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import { SSEElysiaTransport } from "./SSEElysiaTransport";
import { Elysia } from "elysia";

// 创建MCP服务器
const server = new McpServer({
  name: "my-mcp-server",
  version: "1.0.0"
});

// 添加资源、工具和提示
server.resource(
  "example",
  "example://resource",
  async (uri) => ({
    contents: [{
      uri: uri.href,
      text: "示例资源内容"
    }]
  })
);

// 创建Elysia应用
const app = new Elysia()
  .get("/", () => "MCP服务器")
  .get("/sse", async (context) => {
    try {
      // 创建传输
      const transport = new SSEElysiaTransport("/messages", context);
      
      // 存储传输
      const sessionId = transport.sessionId;
      // ... 将传输存储在映射中
      
      // 连接到MCP服务器
      await server.connect(transport);
      
      return;
    } catch (error) {
      // 处理错误
    }
  })
  .post("/messages", async (context) => {
    // 处理传入的消息
  });

// 启动服务器
app.listen(3001, () => {
  console.log("MCP服务器正在http://localhost:3001运行");
});

调试

您可以使用MCP Inspector工具调试您的MCP服务器并通过sse连接

npx @modelcontextprotocol/inspector

这将打开一个Web界面,您可以在其中:

  • 列出可用的资源、工具和提示
  • 测试调用工具和检索资源
  • 检查客户端和服务器之间的通信

贡献

欢迎贡献!请随意提交Pull Request。

许可证

本项目根据MIT许可证发布 - 查看LICENSE文件以获取详细信息。 </中文翻译>