mcpField
D
D0UGWITHSEISMIC/WITHSEISMIC-MCP

D0UGWITHSEISMIC/WITHSEISMIC-MCP

本地服务
github.com/dougwithseismic开发工具1483 周前更新

关于 D0UGWITHSEISMIC/WITHSEISMIC-MCP

面向开发者的 TypeScript MCP 服务模板,用于托管自定义工具和提示词。提供远程 SSE 与本地 stdio 两种运行模式,并自动注册组件。

主要功能

  1. 01远程 SSE 与本地 stdio 模式
  2. 02自动发现并注册工具和提示词
  3. 03Zod 输入输出校验
  4. 04TypeScript 类型支持
  5. 05内置错误处理、日志和指标

适用场景

  1. 01构建供 AI 模型调用的工具
  2. 02为团队托管共享 MCP 服务
  3. 03通过 SSE 部署远程服务
  4. 04使用 stdio 本地开发和测试

MCP 相关

该模板实现 MCP 服务,可向客户端暴露自定义工具和提示词。支持 SSE 远程连接和 stdio 本地通信。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

D0UGWITHSEISMIC/WITHSEISMIC-MCP

WithSeismic MCP

SYSTEMS ONLINE • NEURAL INTERFACE ACTIVE • COMBAT DATA ANALYSIS • TACTICAL OVERLAY ENABLED • PERFORMANCE METRICS NOMINAL

TypeScript Node.js pnpm License Discord Deploy on Railway

一个可用于生产环境的 MCP 服务模板,用于托管你自己的 AI 工具和提示词。可远程部署或在本地运行,专为希望将工具开放给 AI 模型使用、又不想为基础设施问题烦恼的开发者打造。

://这适合谁?

此模板非常适合:

  • AI 工具开发者:构建并托管自己的工具,供 AI 模型调用
  • 团队与组织:为 AI 应用搭建共享的 MCP 服务
  • 个人开发者:通过可用于生产环境的配置快速启动 MCP 开发
  • API 提供商:通过标准化接口向 AI 模型开放服务

无论你想要:

  • 🌐 托管可供多个客户端连接的远程 MCP 服务
  • 🔧 通过 stdio 在本地运行,以便开发和测试
  • 🚀 部署可用于生产环境的 MCP 实现
  • 🛠️ 构建工具,而无需担心基础设施

此模板都能提供你入门所需的一切。

://概览

此 MCP 服务提供两种向 AI 模型开放工具的方式:

  1. 远程服务模式(SSE):部署为远程服务,供多个客户端连接

    • 非常适合生产环境部署 (pnpm start:sse)
    • 支持多个客户端同时连接
    • 可轻松部署到 Railway 等平台
    • 安全且可扩展
  2. 本地模式(stdio):在本地运行,以便开发和测试 (pnpm start)

    • 非常适合本地开发
    • 直接通过 stdio 通信
    • 快速迭代和调试

主要功能:

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

://为什么使用此 MCP 服务模板?

虽然 Model Context Protocol(MCP)仍处于早期阶段,但有一点很明确:快速普及需要顺畅无阻的开发体验。此实现专注于一个目标:让开发者专注于构建出色的工具,而不是基础设施。

即时部署
# Option 1: One-Click Deploy
Click the "Deploy on Railway" button above ☝️

# Option 2: Local Setup
pnpm install && pnpm dev
开发零阻碍
  • 无需样板代码:定义工具并导入即可,剩下的交给我们。
  • 自动注册:自动发现并注册工具和提示词。
  • 类型安全:无需配置即可全面支持 TypeScript。
经受实战检验的架构
  • 可用于生产环境:为可靠性和性能而构建。
  • 可扩展设计:支持从简单工具到复杂 AI 交互。
  • 错误恢复能力强:内置完善的错误处理和调试功能。
开发者体验优先
// That's it. This is all you need to create a tool.
export const myTool = new Tool(
  {
    name: "myTool",
    description: "What my tool does",
    inputSchema: z.object({ query: z.string() }),
    outputSchema: z.object({ result: z.string() }),
  },
  async (args) => {
    // Your logic here
    return { result: "Done!" };
  },
);

我们负责:

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

你专注于:

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

://开始使用

安装
pnpm install
运行服务

提供两种运行模式:

  1. 标准模式(stdio):
pnpm dev      # Development with hot reload
pnpm start    # Production
  1. SSE(服务器发送事件)模式:
pnpm dev:sse  # Development with hot reload
pnpm start:sse # Production

在 SSE 模式下运行时,请连接到:http://localhost:3001/sse

://核心概念

工具

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

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

工具示例:

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

const MyToolInputSchema = z.object({
  param1: z.string().describe("Parameter description"),
});

const MyToolOutputSchema = z.object({
  result: z.string().describe("Result description"),
});

export const myTool = new Tool(
  {
    name: "myTool",
    description: "What my tool does",
    inputSchema: MyToolInputSchema,
    outputSchema: MyToolOutputSchema,
  },
  async (args) => {
    const input = MyToolInputSchema.parse(args);
    // Tool logic here
    return { result: "processed result" };
  },
);
提示词

提示词是有助于构建模型交互的消息生成器。每个提示词:

  • 定义其参数架构
  • 以一致的格式生成消息
  • 自动向注册表注册

提示词示例:

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

export const myPrompt = new Prompt(
  {
    name: "myPrompt",
    description: "What my prompt does",
    arguments: [
      {
        name: "arg1",
        description: "Argument description",
        required: true,
      },
    ],
  },
  async (args) => {
    return [
      {
        role: "system",
        content: {
          type: "text",
          text: `Generated message using ${args.arg1}`,
        },
      },
    ];
  },
);

://添加新组件

创建新工具
  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 指南

://贡献

NEURAL INTERFACE DETECTED • INITIATING COLLABORATION PROTOCOLS • READY FOR UPLINK

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

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

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

://支持

SUPPORT PROTOCOLS ACTIVE • COMMUNICATION CHANNELS OPEN • READY TO ASSIST

://许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

© 2025 Doug,来自 WithSeismic dot com。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。