返回市场
带地震监测-MCP

带地震监测-MCP

作者:dougwithseismic14 星标更新:2025-03-26

项目介绍

D0UGWITHSEISMIC/WITHSEISMIC-MCP

WithSeismic MCP

系统在线 • 神经接口激活 • 战斗数据分析 • 战术覆盖启用 • 性能指标正常

TypeScript Node.js pnpm License Discord Deploy on Railway

一个用于托管您自己的AI工具和提示的生产就绪型MCP服务器模板。可以远程部署或本地运行——专为希望将工具暴露给AI模型而无需担心基础设施问题的开发者设计。

://WHO_IS_THIS_FOR?

此模板适用于:

  • AI工具开发者:构建并托管AI模型可以与其交互的工具
  • 团队与组织:为您的AI应用程序设置共享的MCP服务器
  • 个人开发者:使用生产就绪配置快速启动MCP开发
  • API提供商:通过标准化接口将服务暴露给AI模型

无论您想要:

  • 🌐 托管多个客户端可以连接到的远程MCP服务器
  • 🔧 通过标准输入输出(stdio)进行本地开发和测试
  • 🚀 部署生产就绪型MCP实现
  • 🛠️ 不用担心基础设施即可构建工具

此模板提供了您开始所需的一切。

://OVERVIEW

MCP服务器提供两种方式将您的工具暴露给AI模型:

  1. 远程服务器模式(SSE):作为多个客户端可以连接到的远程服务器部署

    • 完美适用于生产部署 (pnpm start:sse)
    • 支持多个同时连接
    • 易于部署到Railway等平台
    • 安全且可扩展
  2. 本地模式(stdio):用于开发和测试的本地运行 (pnpm start)

    • 适合本地开发
    • 直接标准输入输出通信
    • 快速迭代和调试

关键特性:

  • 工具:模型可以调用的可执行函数
  • 提示:基于模板的消息生成器
  • 自动发现:组件的自动注册
  • 类型安全:全面支持TypeScript

://WHY_USE_THIS_MCP_SERVER_TEMPLATE?

虽然模型上下文协议(MCP)仍处于早期阶段,但有一点是明确的:快速采用需要无摩擦的开发。此实现专注于让开发者专注于构建出色的工具,而不是基础设施。

即时部署

# 选项1:一键部署
点击上方的“在Railway上部署”按钮 ☝️

# 选项2:本地设置
pnpm install && pnpm dev

无摩擦开发

  • 无需样板代码:定义您的工具,导入它,然后完成。我们处理其余部分。
  • 自动注册:工具和提示会自动被发现并注册。
  • 类型安全:无需配置的全面TypeScript支持。

经过实战考验的架构

  • 生产就绪:为可靠性和性能而构建。
  • 可扩展设计:从简单的工具到复杂的AI交互。
  • 错误恢复能力:内置强大的错误处理和调试功能。

开发者优先体验

// 这就是全部。这就是您创建工具所需的一切。
export const myTool = new Tool(
  {
    name: "myTool",
    description: "我的工具做什么",
    inputSchema: z.object({ query: z.string() }),
    outputSchema: z.object({ result: z.string() }),
  },
  async (args) => {
    // 您的逻辑在这里
    return { result: "完成!" };
  },
);

我们处理:

  • ⚡ 连接管理
  • 🔄 工具注册
  • 🛡️ 输入验证
  • 📦 状态管理
  • 🚨 错误处理
  • 📊 日志记录和度量

您只需关注:

  • 🎯 构建出色的工具
  • 🧠 创建强大的提示
  • 🚀 发布功能

://GETTING_STARTED

安装

pnpm install

运行服务器

有两种模式可用:

  1. 标准模式(stdio):
pnpm dev      # 带热重载的开发
pnpm start    # 生产
  1. SSE(服务器发送事件)模式:
pnpm dev:sse  # 带热重载的开发
pnpm start:sse # 生产

当以SSE模式运行时,连接到:http://localhost:3001/sse

://CORE_CONCEPTS

工具

工具是模型可以调用的可执行函数。每个工具:

  • 使用Zod定义输入/输出模式
  • 自动注册到注册表
  • 可以执行任何操作(计算、文件I/O、API调用等)

示例工具:

import { z } from "zod";
import { Tool } from "../core";

const MyToolInputSchema = z.object({
  param1: z.string().describe("参数描述"),
});

const MyToolOutputSchema = z.object({
  result: z.string().describe("结果描述"),
});

export const myTool = new Tool(
  {
    name: "myTool",
    description: "我的工具做什么",
    inputSchema: MyToolInputSchema,
    outputSchema: MyToolOutputSchema,
  },
  async (args) => {
    const input = MyToolInputSchema.parse(args);
    // 工具逻辑在此处
    return { result: "处理结果" };
  },
);

提示

提示是帮助结构化模型交互的消息生成器。每个提示:

  • 定义其参数模式
  • 以一致格式生成消息
  • 自动注册到注册表

示例提示:

import { Prompt } from "../core";

export const myPrompt = new Prompt(
  {
    name: "myPrompt",
    description: "我的提示做什么",
    arguments: [
      {
        name: "arg1",
        description: "参数描述",
        required: true,
      },
    ],
  },
  async (args) => {
    return [
      {
        role: "system",
        content: {
          type: "text",
          text: `使用${args.arg1}生成的消息`,
        },
      },
    ];
  },
);

://ADDING_NEW_COMPONENTS

创建新工具

  1. src/modules/tools/中创建一个新文件
  2. 使用Zod定义输入/输出模式
  3. 创建并导出您的工具实例
  4. 将导出添加到src/modules/tools/index.ts

注册表会自动:

  • 注册您的工具
  • 让其对模型可用
  • 处理验证和错误处理

创建新提示

  1. src/modules/prompts/中创建一个新文件
  2. 定义您的参数模式
  3. 创建并导出您的提示实例
  4. 将导出添加到src/modules/prompts/index.ts

注册表会自动:

  • 注册您的提示
  • 让其对模型可用
  • 处理消息生成和错误

架构

核心组件

  • 注册表:所有工具和提示的中央管理者
  • 工具:可执行函数的基础类
  • 提示:消息生成器的基础类
  • 服务器:MCP协议实现

自动注册

该系统使用单例注册表模式,它:

  1. 在导入时自动注册工具和提示
  2. 提供类型安全的组件访问
  3. 处理所有MCP协议交互

错误处理

该系统包括强大的错误处理:

  • 通过Zod模式进行类型验证
  • 包装执行错误
  • 调试详细错误信息

开发

类型安全

所有组件都使用TypeScript以实现完全类型安全:

  • 使用Zod定义输入/输出模式
  • 工具参数和结果的类型推断
  • 全面的错误类型

测试

运行测试使用:

pnpm test

最佳实践

  1. 始终定义清晰的输入/输出模式
  2. 使用描述性名称和文档
  3. 优雅地处理错误
  4. 遵循代码库中的TypeScript指南

://CONTRIBUTING

检测到神经接口 • 启动协作协议 • 准备上传

我们欢迎贡献!请参阅我们的贡献指南,了解详情:

  • 开发工作流程
  • 代码风格指南
  • 拉取请求过程
  • 报告问题

加入我们的Discord社区,与其他贡献者联系!

://SUPPORT

支持协议激活 • 通讯渠道开放 • 准备协助

://LICENSE

本项目根据MIT许可发布 - 详情见LICENSE文件。

© 2_25 Doug, at WithSeismic dot com.