Back to MCP directory
publicPublicdnsLocal runtime

fastmcp

FastMCP是一个基于TypeScript的框架,用于构建支持客户端会话的MCP服务器。它提供了工具、资源和提示的简单定义,支持认证、会话管理、图像和音频内容返回、日志记录、错误处理、SSE通信等功能,并包含CLI工具用于测试和调试。

article

README

🚀 FastMCP 快速入门指南

FastMCP 是一个用于快速开发 MCP(模型上下文协议)服务器的 TypeScript 框架。它简化了与各种 LLM 的集成,通过直观的 API 和中间件系统,让开发者能快速构建自定义 MCP 服务,还支持多种高级功能。

🚀 快速开始

安装依赖项

npm install fastmcp --save

创建项目结构

your-project/
├── package.json
├── tsconfig.json
└── src/
    └── server.ts

初始化配置

tsconfig.json 中添加以下内容以启用 TypeScript 支持:

{
  "compilerOptions": {
    "target": "ES6",
    "module": "CommonJS"
  }
}

运行服务器

ts-node src/server.ts

✨ 主要特性

  • 简单易用:通过直观的 API 和中间件系统快速构建自定义 MCP 服务。
  • 高性能:内置高效的请求处理机制,确保低延迟和高吞吐量。
  • 可扩展性:支持插件系统,允许轻松添加自定义功能。
  • 跨平台兼容性:支持多种操作系统和环境。

📦 安装指南

要开始使用 FastMCP,请按照以下步骤进行安装:

步骤 1:通过 npm 安装 FastMCP

npm install fastmcp --save

步骤 2:创建 server.ts 文件并添加代码

import { createServer } from 'fastmcp';

const server = createServer();

// 添加自定义路由
server.get('/ping', (req, res) => {
  res.send('pong');
});

server.start(3000);

步骤 3:运行服务器

ts-node server.ts

💻 使用示例

基础用法

以下是一个简单的示例,展示了如何创建一个基本的 MCP 服务器:

import { createServer } from 'fastmcp';

const server = createServer();

// 处理根路径请求
server.get('/', (req, res) => {
  res.send('Welcome to FastMCP Server!');
});

// 启动服务器
server.start(3000);

高级用法

中间件示例

import { createServer, Middleware } from 'fastmcp';

const server = createServer();

// 创建一个简单的中间件
const loggerMiddleware: Middleware = (req, res, next) => {
  console.log('请求开始:', req.url);
  next();
};

// 将中间件应用到所有请求
server.use(loggerMiddleware);

server.get('/', (req, res) => {
  res.send('Hello World!');
});

server.start(3000);

路由示例

import { createServer } from 'fastmcp';

const server = createServer();

// 定义路由处理不同请求类型
server.get('/api/data', (req, res) => {
  // 返回 JSON 数据
  res.json({ message: '数据获取成功!' });
});

server.post('/api/upload', async (req, res) => {
  // 处理文件上传
  const uploadedFile = await req.file();
  res.send(`文件 ${uploadedFile.name} 成功上传!`);
});

server.start(3001);

📚 详细文档

FastMCP 提供了详细的文档和示例,帮助你快速上手并掌握高级功能。访问 FastMCP 官方网站 查看完整文档。

API 参考

Server

  • start(port: number):启动服务器,指定要监听的端口。
  • get(path: string, handler: (req, res) => void):添加一个新的 GET 路由。
  • post(path: string, handler: (req, res) => void):添加一个新的 POST 路由。

Middleware

  • 类型定义
type Middleware = (
  req: Request,
  res: Response,
  next: () => void
) => void;

开发指南

创建自定义中间件

FastMCP 允许你创建自定义中间件来扩展服务器功能:

import { createServer, Middleware } from 'fastmcp';

const server = createServer();

// 自定义日志记录中间件
const logger: Middleware = (req, res, next) => {
  console.log(`收到请求:${req.method} ${req.url}`);
  next();
};

server.use(logger);

server.get('/', (req, res) => {
  res.send('Hello World!');
});

server.start(3002);

使用插件

FastMCP 的插件系统允许你快速扩展服务器功能。例如,添加身份验证、日志记录等:

import { createServer } from 'fastmcp';
import { cors } from 'fastmcp/plugins/cors';

const server = createServer();

// 启用 CORS 插件
server.use(cors());

server.get('/api/test', (req, res) => {
  res.send('CORS 已启用!');
});

server.start(3003);

常见问题

如何处理错误?

你可以使用中间件来捕获和处理错误:

import { createServer, Middleware } from 'fastmcp';

const server = createServer();

// 错误处理中间件
const errorHandler: Middleware = (req, res, next) => {
  try {
    next();
  } catch (err) {
    console.error('发生错误:', err);
    res.status(500).send('服务器内部错误');
  }
};

server.use(errorHandler);

server.get('/test/error', () => {
  throw new Error('测试错误处理');
});

server.start(3004);

其他资源

通过 FastMCP,你可以快速构建高效、可靠且易于扩展的 MCP 服务器。开始你的项目吧!

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client