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

Beam Scope MCP

MCP Server

BeamScope是一款为Elixir应用设计的稳健MCP服务器,通过独立TCP架构为AI编码代理提供对运行中BEAM应用的访问,支持应用重启时自动重连。

工具数

20

提示词数

0

GitHub Stars

1

资源数

0
Claude开发工具命令行工具Claude

安装说明

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

作者 / 组织

JediLuke

提供方

JediLuke

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

波束示波器MCP

用于Elixir应用程序的强大MCP(模型上下文协议)服务器。BeamScope使AI编码代理能够通过弹性TCP架构访问正在运行的BEAM应用程序,该架构可以在应用程序重启后幸存下来。

为什么选择BeamScope?

BeamScope旨在解决基于HTTP的MCP服务器(如TideWave)的一个基本问题: 当你的Elixir应用程序重新启动时,连接会断开,无法重新连接.

在以下情况下,这在开发过程中尤其痛苦:

  • 跑步 mix compile 更改后
  • 重新启动应用程序以获取配置更改
  • 发生崩溃,触发主管重新启动

BeamScope使用 独立TCP架构 TypeScript桥维护与AI代理的连接,并在Elixir应用程序恢复时自动重新连接。

Traditional HTTP-based MCP (TideWave):
┌─────────────┐      HTTP       ┌──────────────────────┐
│  AI Agent   │ ──────────────► │  Phoenix Endpoint    │  ← Dies when app restarts
└─────────────┘                 │  (Plug-based MCP)    │
                                └──────────────────────┘

BeamScope Architecture:
┌─────────────┐     stdio      ┌───────────────────┐     TCP      ┌─────────────────┐
│  AI Agent   │ ─────────────► │  TypeScript       │ ──────────►  │  Elixir         │
│             │                │  Bridge           │  reconnects  │  GenServer      │
└─────────────┘                │  (stays running)  │  on restart  │  (BeamScope)    │
                               └───────────────────┘              └─────────────────┘

设计理念

通用Elixir/BEAM,非特定于框架

BeamScope适用于 任何Elixir应用程序不仅仅是凤凰城。这些工具在整个Elixir生态系统中都很有用:

  • project_eval --评估正在运行的应用程序中的代码
  • get_logs --通过筛选检索应用程序日志
  • get_docs --访问模块和功能的本地文档

我们有意排除特定于框架的工具(Ecto、Ash、Phoenix),以保持BeamScope的可移植性,并专注于每个BEAM应用程序的共同点。

无默认端口--大声失败

BeamScope具有 堆栈中任何位置都没有默认端口。如果未配置端口,应用程序将在启动时崩溃,并显示一条明确的错误消息,告诉您要在配置中添加什么。

这可以防止出现Elixir应用程序在一个端口上监听而MCP网桥试图在另一个端口连接的令人抓狂的情况。每个端口都必须在这两个位置明确配置。

安装

BeamScope MCP有两个组件:Elixir库(TCP服务器+工具)和TypeScript桥(MCP协议)。两者都在本地运行-- 先克隆仓库,然后将其作为路径依赖项引用。

1.克隆仓库

cd ~/your/projects  # or wherever you keep local deps
git clone https://github.com/JediLuke/BeamScope-MCP.git beam_scope_mcp

2.添加到您的Elixir项目

将克隆的仓库作为路径依赖引用:

# mix.exs
def deps do
  [
    {:beam_scope_mcp, path: "../beam_scope_mcp", only: :dev}
  ]
end

将路径调整到相对于项目克隆的位置。

mix deps.get

3.配置端口(必填)

# config/config.exs (or config/dev.exs)
config :beam_scope_mcp,
  port: 9995,
  app_name: "MyApp"

允许环境变量覆盖(可选):

# config/runtime.exs
if port = System.get_env("BEAM_SCOPE_MCP_PORT") do
  config :beam_scope_mcp, port: String.to_integer(port)
end

4.构建TypeScript桥

cd /path/to/beam_scope_mcp
npm install
npm run build

5.配置您的AI编码代理

将BeamScope添加到项目的 .mcp.json:

{
  "mcpServers": {
    "beam-scope-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/beam_scope_mcp/dist/index.js"],
      "env": { "BEAM_SCOPE_MCP_PORT": "9995" }
    }
  }
}

重要提示:BEAM_SCOPE_MCP_PORT env-var必须与Elixir配置中的端口匹配。如果它丢失,TypeScript桥将立即退出并返回错误。

可用工具(20)

连接

工具说明
connect_beam_scope_mcp建立TCP连接。通过env var预先配置端口
get_beam_scope_mcp_status检查当前连接状态。

核心

工具说明
get_logs带有tail/grep/级别过滤的应用程序日志
project_eval在运行中的应用程序中评估Elixir代码并超时。
get_docs模块/功能的本地文档 Code.fetch_docs/1.

编译

工具说明
recompile从BEAM中重新编译项目。返回错误/警告。
reload_module从源文件热重新加载单个模块。最快的反馈循环。
recompile_deps强制重新编译依赖关系。所需参数(例如。 ["--force"]).

系统与流程反思

工具说明
get_system_stats内存、调度器、进程计数、正常运行时间、IO统计数据。
list_processes可过滤/可排序的进程列表(按名称、内存、队列大小)。
get_process_info详细信息:功能、内存、链接、监视器、堆栈跟踪。
get_process_stateGenServers的内部状态通过 :sys.get_state/1.
get_process_dictionary处理字典元数据(记录器元数据、标志等)。

应用程序和OTP

工具说明
get_app_config运行时应用程序配置(BEAM加载的内容,而不是磁盘上的文件)。
get_supervision_tree递归OTP监督树遍历。需要应用程序名称。

美国教育考试服务中心

工具说明
list_ets_tables所有ETS表,包括大小、内存、类型、保护、所有者。
inspect_ets_table读取带有行限制和截断的ETS表内容。

代码智能

工具说明
xref_callers通过以下方式查找模块或函数的所有调用者 mix xref重构前的影响分析

追踪

工具说明
trace_calls跟踪模块上的函数调用。写入文件 /tmp/beam_scope_traces/ --使用文件读取工具读取结果。自动在呼叫/时间限制时停止。
stop_trace任何运行痕迹的紧急停止。即使没有运行跟踪,也可以安全调用。

运行多个应用程序

每个应用程序使用不同的端口:

# App 1: config/config.exs
config :beam_scope_mcp, port: 9995

# App 2: config/config.exs
config :beam_scope_mcp, port: 9994

每个应用程序 .mcp.json 通过以下方式传递匹配端口 BEAM_SCOPE_MCP_PORT.

建筑

beam_scope_mcp/
├── lib/
│   ├── beam_scope_mcp.ex           # Public API
│   └── beam_scope_mcp/
│       ├── application.ex          # OTP Application (fail-loudly port config)
│       ├── server.ex               # TCP GenServer + command dispatch
│       ├── log_capture.ex          # Logger handler + circular buffer
│       └── tools/
│           ├── logs.ex             # get_logs
│           ├── eval.ex             # project_eval
│           ├── docs.ex             # get_docs
│           ├── recompile.ex        # recompile, reload_module, recompile_deps
│           ├── system_stats.ex     # get_system_stats
│           ├── processes.ex        # list_processes, get_process_info/state/dictionary
│           ├── app_config.ex       # get_app_config
│           ├── supervision_tree.ex # get_supervision_tree
│           ├── ets.ex              # list_ets_tables, inspect_ets_table
│           ├── xref.ex             # xref_callers
│           └── trace.ex            # trace_calls, stop_trace (writes to /tmp/beam_scope_traces/)
├── src/
│   ├── index.ts                    # MCP server entry point
│   ├── connection.ts               # TCP connection (requires BEAM_SCOPE_MCP_PORT env var)
│   └── tools.ts                    # Tool definitions and handlers
└── dist/                           # Compiled TypeScript (gitignored)

工具选择评估

工具描述经过优化,以便LLM为每个任务选择正确的工具。看 EVAL.md 18个测试场景和结果(17/18通过Claude Opus 4.6)。

从潮汐波迁移

MIGRATION_FROM_TIDEWAVE.md 获取分步指南。

许可证

麻省理工学院

目录标签

目录标签

Claude开发工具命令行工具Elixir本地部署Elixir开发工具BEAM应用调试TCP协议服务器AI辅助编程开发效率工具

支持客户端

Claude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP