Token导航 LogoToken导航TokenDH.com
Mcpservermonitor logo
开发工具未说明官方级别未说明来源级核验

Mcpservermonitor

MCP Server

一款用于扫描和监控本地及网络中Model Context Protocol (MCP)服务器的控制台应用程序,提供实时发现、状态监控和详细信息展示功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
开发工具TypeScript命令行工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

heimerle

提供方

heimerle

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

🔍 MCP服务器监控器

一个功能强大的控制台应用程序,用于扫描和监控 模型上下文协议(MCP) 本地计算机和网络上的服务器。MCP服务器监视器提供实时发现、状态监控以及您环境中所有可用MCP服务器的详细信息。

🎯 什么是MCP?

这个 模型上下文协议(MCP) 是一个用于AI模型交互和上下文管理的标准化协议。MCP服务器为AI模型提供以下访问权限:

  • 外部数据源和API(应用程序编程接口)
  • 任务执行的工具和功能
  • 提供上下文信息以获得更佳回复
  • 与各种服务和平台的集成

这款监控工具可帮助您发现并追踪开发环境中的所有MCP服务器。

✨ 特点

  • 🖥️ 本地进程扫描检测作为本地进程运行的MCP服务器
  • 🔍(放大镜,表示查看、搜索或调查) 智能发现查找所有MCP命名的进程以及所有在端口上监听的Node.js服务器
  • 🌐(这个符号本身没有直接对应的中文翻译,它通常代表“网络”或“互联网”的意象,但在这里若作为独立符号翻译,可理解为“网络/互联网”的象征) 网络发现扫描您的本地网络以查找远程MCP服务器
  • 📊 表格 美观的控制台输出带有彩色状态指示器的格式化表格
  • ⚡(闪电符号,无直接对应中文含义,可理解为“闪电”或在特定语境下表示速度、能量等) 快速且高效可配置超时时间的并行扫描
  • 🔄 旋转(循环、重复) 持续监控每30秒自动刷新,终端输出清晰
  • 📋(清单/列表) 配置文件支持从通用配置位置读取MCP服务器配置
  • 🔌(电源插头) 协议检测识别基于HTTP、HTTPS、WebSocket和TCP的MCP服务器
  • 📈(上升趋势的折线图) 实时状态显示在线/离线状态以及最后在线时间戳
  • 🎯(目标) 能力检测显示服务器功能和版本
  • 🔔(铃铛图标,常用于表示提醒、注意或开始等) 更改通知当服务器上线或离线时发出警报

🚀 快速入门

先决条件

  • Node.js(v14或更高版本)
  • TypeScript
  • npm 或 yarn

安装

  1. 克隆或导航到项目目录:
cd /Users/michaelweinheimer/projects/mcpServerMonitor/mcpServerMonitor
  1. 安装依赖项:
npm install
  1. 构建项目(可选):
npm run build

使用

运行MCP服务器监视器:

npm start

对于支持自动重载的开发:

npm run dev

📋 它的工作原理

MCP服务器监视器使用一种 双策略扫描方法 确保服务器完全发现:

1. 本地进程扫描

策略A:MCP命名流程发现

  • 搜索命令行中包含“mcp”或“model-context-protocol”的正在运行的进程
  • 用途 ps 列出所有与MCP相关的关键词对应的过程和过滤器
  • 提取端口信息使用 lsof 带有针对PID的特定过滤功能
  • 通过名称监控活跃的MCP服务器实例

策略B:所有Node.js服务器发现

  • 发现所有监听TCP端口的Node.js进程
  • 用途 lsof -iTCP:LISTEN 寻找听力过程
  • 捕获那些名称中可能不包含“mcp”的通用 Node.js 服务器
  • 确保不遗漏任何服务器,无论其命名规范如何

端口检测:

  • 用途 lsof -nP -iTCP -sTCP:LISTEN 用于准确的端口检测
  • 通过特定进程ID(PID)过滤结果以避免误报
  • 提取实际的监听端口,而非继承的文件描述符
  • 通过连接测试验证服务器可用性

2. 配置文件发现

扫描常见的配置位置:

  • ~/.mcp/ - 用户特定的MCP配置目录
  • ~/.config/mcp/ - XDG标准配置位置
  • /etc/mcp/ - 全系统范围的MCP配置
  • ./mcp-servers.json - 项目特定配置

3. 网络扫描

  • 扫描指定的IP范围(默认: 192.168.1.0/24)
  • 测试常见的MCP端口(3000、3001、8000、8080、8888、9000)
  • 尝试通过HTTP端点识别MCP服务器:

- /mcp - MCP特异性终点 - /health - 健康检查端点 - /status - 状态端点 - / - 带有MCP指标的根端点

4. 持续监测

  • 每30秒自动扫描一次
  • 每次扫描前清除终端,以确保输出干净
  • 追踪服务器状态变化(在线/离线)
  • 当服务器出现或消失时提供通知
  • 显示每次迭代的扫描次数和时间戳

🎛️ 配置

基本配置

你可以通过修改选项来自定义扫描器的行为 src/main.ts

const scanner = new MCPScanner({
    includeLocalProcesses: true,           // Scan local processes
    includeNetworkScan: true,              // Scan network
    networkRange: '192.168.1.0/24',        // IP range to scan
    portRange: { start: 3000, end: 8080 }, // Port range
    timeout: 3000                           // Connection timeout (ms)
});

扫描间隔

要更改扫描频率,请修改 SCAN_INTERVAL 在……中保持不变 src/main.ts

const SCAN_INTERVAL = 30; // Seconds between scans

常见配置场景

快速本地开发:

const scanner = new MCPScanner({
    includeLocalProcesses: true,
    includeNetworkScan: false,  // Disable network scan for speed
    timeout: 1000
});
const SCAN_INTERVAL = 10;  // Quick 10-second scans

全面网络发现:

const scanner = new MCPScanner({
    includeLocalProcesses: true,
    includeNetworkScan: true,
    networkRange: '192.168.1.0/24',
    portRange: { start: 3000, end: 9000 },
    timeout: 5000
});
const SCAN_INTERVAL = 60;  // Thorough 60-second scans

生产监控:

const scanner = new MCPScanner({
    includeLocalProcesses: true,
    includeNetworkScan: true,
    networkRange: '10.0.0.0/16',  // Enterprise network
    portRange: { start: 8000, end: 8100 },
    timeout: 2000
});
const SCAN_INTERVAL = 30;  // Balanced 30-second scans

📁 项目结构

mcpServerMonitor/
├── src/
│   ├── main.ts              # Application entry point
│   ├── mcpScanner.ts        # Core scanning logic
│   ├── serverLister.ts      # Console output formatting
│   └── types/
│       └── index.ts         # TypeScript type definitions
├── package.json             # npm configuration
├── tsconfig.json            # TypeScript configuration
└── README.md               # This file

📊 输出示例

🚀 MCP Server Monitor v1.0.0

🔍 Starting MCP Server scan...
🔍 Scanning local processes...
🌐 Scanning network for MCP servers...
✅ Scan completed. Found 3 MCP servers.

🔍 MCP Server Monitor Results

✅ Found 3 MCP server(s):
   Online: 2
   Offline: 1

┌─────────────────────────┬──────────────────┬────────┬────────────┬──────────┬────────────┬────────────────────┐
│ Name                    │ Address          │ Port   │ Protocol   │ Status   │ Last Seen  │ Capabilities       │
├─────────────────────────┼──────────────────┼────────┼────────────┼──────────┼────────────┼────────────────────┤
│ Local MCP Process (1234)│ localhost        │ 3000   │ HTTP       │ ONLINE   │ Just now   │ local              │
├─────────────────────────┼──────────────────┼────────┼────────────┼──────────┼────────────┼────────────────────┤
│ MCP Server (192.168.1.5)│ 192.168.1.5      │ 8080   │ HTTP       │ ONLINE   │ Just now   │ remote, api        │
├─────────────────────────┼──────────────────┼────────┼────────────┼──────────┼────────────┼────────────────────┤
│ Production MCP          │ 192.168.1.10     │ 9000   │ HTTPS      │ OFFLINE  │ 5m ago     │ production         │
└─────────────────────────┴──────────────────┴────────┴────────────┴──────────┴────────────┴────────────────────┘

✅ Monitoring 2 active MCP server(s)
Protocols detected: http, https

🛠️ 开发

TypeScript 编译

将TypeScript编译为JavaScript:

npm run build

编译后的文件将位于 dist/ 目录。

观看模式

对于需要自动重新编译的开发:

npm run dev

最佳实践

为了最佳性能

  1. 仅从本地扫描开始 在开发过程中以获取即时结果
  2. 启用网络扫描 只有在你需要发现远程服务器时
  3. 调整扫描间隔 根据您的需求:

- 开发:10-15秒快速反馈 - 生产:30-60秒以减轻系统负载

  1. 使用适当的端口范围 以避免扫描不必要的端口
  2. 监控输出 以便快速获取变更通知,及时发现并解决问题

安全考量

  • 网络扫描可能会在企业网络中触发安全警报
  • 在扫描不属于你的网络之前,务必获得许可
  • 扫描仪执行只读操作,不会修改任何服务器
  • 考虑使用防火墙规则来限制可以被扫描的系统

性能优化技巧

  • 仅本地模式 比网络扫描快得多
  • 较小的网络范围(/28 或者 /29) 扫描速度比……快 /24
  • 端口范围缩小可按比例减少扫描时间
  • 较低的超时值(1000-2000毫秒)可以加快扫描速度,但可能会遗漏响应较慢的服务器

🔧 故障排除

未找到服务器?

  1. 检查MCP服务器是否正在运行
   # Check for Node.js processes
   ps aux | grep node

   # Check for listening ports
   lsof -iTCP -sTCP:LISTEN | grep node
  1. 验证服务器的可访问性
   # Test if server responds
   curl http://localhost:3000

   # Check network connectivity
   ping 192.168.1.5
  1. 防火墙设置确保您的防火墙允许扫描器访问相关端口
   # macOS: Check firewall status
   /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
  1. 网络范围验证 networkRange 设置与您的网络配置相匹配
   # Check your IP address
   ifconfig | grep "inet "
  1. 端口范围调整 portRange 如果你的MCP服务器使用不同的端口
  1. 超时提高/增加 timeout 如果服务器响应缓慢时的值

权限问题?

在 macOS/Linux 系统上,进行网络扫描可能需要提升的权限:

sudo npm start

若需无需sudo权限的持续使用,请考虑使用 authbind 在Linux上:

sudo apt-get install authbind
authbind npm start

同一端口上的多个服务器?

这是一个已经修复的漏洞!现在扫描仪能正确使用 lsof 使用PID过滤以确保每个进程显示其实际监听的端口。如果您仍然看到此问题:

  1. 检查您是否正在运行旧版本
  2. 验证以确认 lsof 已安装: which lsof
  3. lsof -nP -iTCP -sTCP:LISTEN 手动查看实际端口分配

服务器没有更新吗?

  1. 检查扫描间隔不要太长
  2. 验证服务器是否确实在响应(使用 curl
  3. 在连续扫描输出中查找错误信息
  4. 重启显示器以清除任何缓存状态

📝 服务器配置格式

如果您想手动配置MCP服务器,请在以下位置之一创建一个JSON文件:

  • ~/.mcp/servers.json
  • ~/.config/mcp/servers.json
  • /etc/mcp/servers.json
  • ./mcp-servers.json

示例格式:

{
  "servers": [
    {
      "name": "My MCP Server",
      "address": "localhost",
      "port": 3000,
      "url": "http://localhost:3000",
      "capabilities": ["tools", "prompts", "resources"]
    }
  ]
}

🤝 贡献(或:参与贡献)

欢迎贡献!请随时提交拉取请求。对于重大更改,请先打开一个问题进行讨论,说明您希望做出的更改。

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建你的特性分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature)
  5. 提交一个拉取请求(或:发起一个合并请求)

📄 许可证

此项目采用ISC许可证授权。

🙏 致谢

  • 用TypeScript构建
  • 用粉笔风格装饰
  • 由 cli-table3 驱动的表格
  • 使用Node.js原生模块进行网络操作

📧 支持

如需报告问题、提出疑问或贡献代码,请在项目仓库中提交一个议题。

______________________________________________________________________

为MCP社区用心打造

目录标签

目录标签

开发工具TypeScript命令行工具服务器监控本地部署MCP协议网络扫描实时状态

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP