MCP Base - A Generic Model Context Protocol Framework

MCP Base - A Generic Model Context Protocol Framework

site icon
2025.03.14 0
TypeScriptAI集成文本生成向量存储开发效率
MCP Base 是一个通用的模型上下文协议框架,用于构建基于AI的应用程序。它提供了一种标准化的方式来创建MCP服务器和客户端,以便将大型语言模型(LLM)集成到应用程序中。该框架具有模块化设计,支持HTTP和stdio传输,并集成了Ollama和Supabase等服务。
View on GitHub

Overview

基本能力

产品定位

MCP Base 是一个通用的模型上下文协议框架,旨在为开发者提供一种标准化的方式来集成和使用大型语言模型(LLM)在应用程序中。

核心功能

  • 标准化MCP服务器:支持HTTP和stdio传输的基础服务器实现。
  • 通用MCP客户端:可以连接到任何MCP服务器的客户端。
  • Ollama集成:提供现成的服务,用于生成嵌入和文本。
  • Supabase集成:内置支持Supabase向量数据库。
  • 模块化设计:清晰的组织结构,包括资源、工具和提示。
  • 示例模板:提供示例实现,帮助快速上手。

适用场景

  • 构建AI驱动的应用程序。
  • 集成大型语言模型(LLM)到现有系统中。
  • 开发需要文本生成或嵌入功能的工具。
  • 使用Supabase进行向量存储的应用。

工具列表

  • sample-tool.ts:示例工具模板,展示如何实现和注册工具。
  • sample-resource.ts:示例资源模板,展示如何实现和注册资源。
  • sample-prompt.ts:示例提示模板,展示如何实现和注册提示。

常见问题解答

  • 如何扩展框架?:可以通过创建新的工具、资源和提示来扩展框架。
  • 如何启动服务器?:导入所需模块,注册资源、工具和提示,然后启动服务器。
  • 如何使用客户端?:创建客户端实例,调用工具、读取资源或获取提示。

使用教程

使用依赖

  • Node.js和npm/pnpm:确保已安装Node.js和npm或pnpm。
  • Ollama:用于本地嵌入和文本生成。
  • Supabase账户:用于向量存储。

安装教程

  1. 创建.env文件并配置环境变量: env PORT=3000 SUPABASE_URL=https://your-project.supabase.co SUPABASE_SERVICE_KEY=your-service-key OLLAMA_URL=http://localhost:11434 OLLAMA_EMBED_MODEL=nomic-embed-text OLLAMA_LLM_MODEL=llama3 SERVER_MODE=http # 'http' or 'stdio'
  2. 导入所需模块并注册资源、工具和提示: ```typescript import server from "./server"; import { registerSampleResources } from "./resources/sample-resource"; import { registerSampleTool } from "./tools/sample-tool"; import { registerSamplePrompts } from "./prompts/sample-prompt";

registerSampleResources(server, supabase); registerSampleTool(server, textGenerator, embeddings, supabase); registerSamplePrompts(server, supabase);

startServer(); ```

调试方式

  1. 启动服务器后,可以使用客户端进行调试: ```typescript import MCPClient from "./client";

const client = new MCPClient({ serverUrl: "http://localhost:3000", });

async function callSampleTool() { const result = await client.callTool("sample-tool", { query: "example query", maxResults: 5, }); console.log(result); }

await client.disconnect(); ``` 2. 检查控制台输出,确保工具、资源和提示按预期工作。

许可证

该项目遵循 MIT 开源许可条款。