使用说明
全栈MCP集线器
FullStack MCP Hub——完整的MCP工具包,内置RAG、GUI和50多种免费工具(无付费API),开箱即用。
适用于:
- OpenAI/ChatGPT Codex CLI
- 双子座命令行界面
- ChatGPT(开发模式) 通过自定义连接器
- 克劳德 (台式机/MCP)
- 本地LLMs (llama.cpp、LM工作室等)
- 基本上 任何事物 可以通过以下方式连接到MCP服务器 标准 或 上海证券交易所
FullStack MCP Hub为您提供的不是每个模型都有自己的隔离工具和半内存 一个中央MCP堆栈:
- A. 网关+集线器 它连接到多个MCP服务器,发现工具,并通过单个端点公开它们。
- A. 图形UI 您可以在哪里:
- 从所有连接的服务器浏览工具,
- 编辑工具描述,
- 阻止你不想使用的工具,
- 保存有效载荷预设,
- 并使用JSON输入和真实响应运行工具。
- A. 内置RAG系统 有自己的选项卡:
- 将文件直接拖放到UI中,
- 浏览您的RAG文件夹(
uploads,saved_chats,images,indexes、配置文件), - 从目录创建命名索引,
- 使用关键字+模糊匹配+过滤器进行搜索,
- 并将该上下文连接到您正在使用的任何模型中。
开箱即用,你会得到一个 坚固、免费的MCP工具栈 (无需付费API):
- 文件系统、shell、Python REPL(有自己的venv)
- 本地RAG(分块搜索、过滤器等),
save_chat,save_image) - 剧作家(浏览器自动化、截图、交互式浏览)
- SQLite(读/写、模式、见解)
- 网络搜索(快速DuckDuckGo+深度多引擎克隆)
- 研究(维基百科、arXiv、维基媒体图片)
- 刮刀(HTML→ text)
- 通过投票生成图像(基于URL)
- CoinGecko市场数据(经过策划,基于上交所)
- 时钟/时间实用程序
目标: 使MCP服务器集成变得容易,并为您提供一个可重用的工具+RAG层,您可以将其插入任何LLM工作流中——云、本地或混合。
截图
快速安装和首次运行
想法:
克隆→ 运行一个脚本→ 打开UI→ 开始添加MCP服务器。
需求
- Node.js 18+
npm- Linux/macOS shell(bash/zsh)或Windows上的WSL
你做到了 不 需要任何付费的API密钥才能开始。
所有捆绑的MCP服务器都在本地运行,并使用免费/公共数据源。
1.克隆仓库
git clone https://github.com/<your-username>/FullStack_MCP_Hub.git
cd FullStack_MCP_Hub
设置根路径(由辅助脚本使用):
export MCP_ROOT="$(pwd)"
(可选)将此添加到您的shell rc中(~/.bashrc 或 ~/.zshrc)所以它总是被设置:
echo "export MCP_ROOT=/full/path/to/FullStack_MCP_Hub" >> ~/.bashrc
重新加载shell或在添加后打开新终端。
2.一次性设置(推荐)
这将:
- 安装网关和UI依赖关系,
- 构建React UI,
- 为Playwright MCP服务器安装Playwright浏览器。
从repo根目录:
cd "$MCP_ROOT"
chmod +x setup.sh start.sh
./setup.sh
运行一次。如果它没有错误地完成,您就可以启动集线器了。
3.启动集线器+UI
从repo根目录:
cd "$MCP_ROOT"
./start.sh
这将:
-
启动MCP网关 http://localhost:3333
-
暴露:
GET /tools–列出工具GET /sse–通用MCP SSE端点POST /gemini/v1/execute–Gemini风格适配器
-
服务于 web用户界面 在 http://localhost:3333
打开浏览器:
http://localhost:3333
中频端口 3333 已在使用中:
lsof -i :3333
kill <pid>
./start.sh
4.手动设置(如果您不想使用setup.sh)
如果您更喜欢查看各个步骤:
-
安装网关deps:
cd "$MCP_ROOT/gateway" npm install -
安装UI deps并构建:
cd "$MCP_ROOT/gateway/ui" npm install npm run build -
启动网关:
cd "$MCP_ROOT/gateway" npm start -
打开用户界面:
http://localhost:3333
5.第一台MCP服务器(剧作家示例)
打开UI后:
-
转到 服务器 部分(左侧边栏)。
-
点击 “打开表单”.
-
填写表格:
- 运输:
stdio - 命令:
npx - Args:
-y @automatalabs/mcp-server-playwright - CWD:
servers(相对于回购根)
- 运输:
-
点击 测试连接.
-
成功后,单击 添加服务器.
现在,您应该看到一组 playwright__* 列表中的工具。
要快速进行健全性检查,请选择 playwright__browser_navigate 并运行:
{ "url": "https://example.com" }
然后运行 playwright__browser_screenshot:
{ "name": "example_full", "fullPage": true }
您应该在配置的Playwright输出路径中看到一个屏幕截图文件。
此时,集线器正在工作并准备插入:
- OpenAI/ChatGPT Codex CLI
- 双子座命令行界面
- ChatGPT开发模式
- 克劳德 或任何其他MCP感知客户端。
架构和仓库布局
FullStack MCP Hub有三个主要层: 中心, 网关,以及 用户界面,再加上一组捆绑的MCP服务器和RAG数据目录。
回购布局
-
hub/MCP集线器核心:- 连接到配置的MCP服务器,
- 列出所有服务器上的工具,
- 执行呼叫,
- 合并工具元数据,
- 应用描述覆盖和阻止列表。
-
gateway/HTTP/SSE前门:-
暴露:
GET /tools–列举工具GET /sse–通用MCP端点POST /gemini/v1/execute–Gemini风格适配器
-
从以下位置提供内置UI
gateway/ui/dist.
-
-
gateway/ui/React+Vite用户界面:- 工具列表和详细信息窗格
- 服务器管理(添加/测试/删除)
- 被阻止的工具视图
- 工具有效载荷预设
- RAG选项卡(拖放上传、浏览文件夹、搜索索引)
-
tool-registry/master.json- MCP服务器注册表(stdio+SSE)及其配置。
-
tool-registry/tool-overrides.json- 按工具描述覆盖(在UI中可编辑)。
-
tool-registry/tool-blocklist.json- 持久工具块列表(从UI的“阻止”选项卡管理)。
-
servers/-
需要以下条件的捆绑MCP服务器 不 付费API:
local_ragsqlitepython_replresearchscrapepollinationscoingeckowebsearchweb-search-mcp(高级)playwrightshellfilesystem
-
-
data/rag/-
本地RAG存储:
uploads/–通过UI导入的任意文件。saved_chats/–原始+摘要聊天记录。images/–保存的图像来自local_rag__save_image.profile_*–个人资料文件夹(例如。profile_jeff).indexes/–每个索引文件夹(如果使用)。indexes.pkl–一个持久的全局索引元数据文件。
-
RAG系统(“1.5代”)
内置RAG系统的设计目的是:
- 轻量级 (无需嵌入),
- 分块的 (约500个单词块),
- 模糊可搜索,
- 和 可过滤的 (路径、标签、时间)。
它是如何工作的(高级)
-
您将文件放入
data/rag/(通常通过UI中的RAG选项卡)。 -
你点
local_rag__create_index在目录中,为索引命名。 -
服务器:
- 浏览该目录,
- 提取文本,
- 将每个文件分割成约500个重叠的单词块,
- 存储块+元数据,
- 并将该结构持久化
indexes.pkl.
-
当你使用
local_rag__search_index:- 它查找所选索引,
- 在块上运行关键字+模糊搜索,
- 应用可选过滤器(如
path_contains,tag或mtime), - 并返回具有足够上下文的匹配块以馈送到模型中。
“1.5代”升级
“1.5代”RAG升级改进了几个关键方面:
-
路径处理
local_rag__create_index和local_rag__search_index现在处理 正确的相对路径,因此您可以将索引指向以下目录data/rag/无需硬编码绝对路径。
-
分块索引
local_rag__create_index将内容拆分为 约500个重叠的单词块,而不是为整个文件建立索引。- 这提高了相关性,并使传递回模型的文本量易于管理。
-
模糊搜索
local_rag__search_index支持 模糊匹配,所以轻微的拼写错误或措辞变化不会影响召回。- 它在预分块文本上使用滑动窗口+相似性评分方法。
-
过滤器
-
path_contains已确认工作正常。 -
其他过滤器(
tag,mtime过滤器)已实现,并按预期运行:tag来源于以下行#tags: project, profile在你的降价中。- 时间过滤器使用文件修改时间来缩小搜索块的范围。
-
总体而言,这为您提供了一个介于以下两者之间的RAG系统:
- 纯关键字搜索 (太笨了,没有大块,没有模糊),以及
- 全矢量/嵌入RAG (更重,需要额外的型号+基础设施),
同时保持个人/本地知识库的简单和快速。
您(或贡献者)稍后可以在顶部添加可选的向量层,而不会破坏现有的API。
RAG文件夹和工作流程
文件夹布局
在...之下 data/rag/ 您通常会看到:
-
uploads/- 通过RAG选项卡拖放的文件。
-
saved_chats/-
由创建的文件
local_rag__save_chat,通常:- 完整的原始转录文件,
- 摘要文件,
- 用时间戳+模型名称编码的文件名。
-
-
images/- 由创建的文件
local_rag__save_imagebase64有效载荷。
- 由创建的文件
-
profile_template/- 模板配置文件:
profile_public.md.
- 模板配置文件:
-
profile_*(例如。profile_jeff/)-
您的实际个人资料数据:
profile_public.md(姓名、首选项、项目等)。
-
-
indexes/- 如果每个索引存储额外的元数据,则每个索引结构都是可选的。
-
indexes.pkl- 跟踪所有索引和缓存文本的单个持久文件。
典型RAG流量
-
创建个人资料
-
复制模板:
mkdir -p data/rag/profile_jeff cp data/rag/profile_template/profile_public.md data/rag/profile_jeff/ -
编辑
profile_public.md您的个人信息和偏好。 -
在顶部附近添加标记线(可选):
#tags: profile, persona -
为它创建一个索引:
{ "index_name": "profile_jeff", "directory": "data/rag/profile_jeff" }通过
local_rag__create_index.
-
-
在新聊天中使用您的个人资料
-
在连接到此集线器的任何客户端中,要求它调用
local_rag__search_index与:{ "index_name": "profile_jeff", "query": "profile persona", "max_results": 5 } -
然后告诉模型在剩下的会话中记住这个配置文件。
-
-
保存聊天记录
-
当谈话很重要时,打电话
local_rag__save_chat与:- 完整成绩单,
- 可选摘要,
- 型号/客户名称。
-
文件将被放入
data/rag/saved_chats/带有时间戳的名字。
-
-
索引和搜索项目文件夹
-
将项目文件夹放在
data/rag/uploads/my_project/. -
创建索引:
{ "index_name": "my_project", "directory": "data/rag/uploads/my_project" } -
稍后,通过搜索
local_rag__search_index以便快速回忆。
-
工具参考(56个捆绑工具)
一旦服务器连接,所有工具都会通过MCP集线器暴露出来。
文件系统(14个工具)
filesystem__create_directoryfilesystem__directory_treefilesystem__edit_filefilesystem__get_file_infofilesystem__list_allowed_directoriesfilesystem__list_directoryfilesystem__list_directory_with_sizesfilesystem__move_filefilesystem__read_filefilesystem__read_media_filefilesystem__read_multiple_filesfilesystem__read_text_filefilesystem__search_filesfilesystem__write_file
使用这些用于检查、读取、写入和组织允许根下的文件和目录(在文件系统MCP服务器上配置)。
本地RAG(6个工具)
-
local_rag__create_index从文本文件目录(分块)构建一个命名索引。 -
local_rag__search_index使用关键字+模糊匹配和可选过滤器搜索命名索引。 -
local_rag__list_files列出RAG目录中的文件。 -
local_rag__list_indexes列出所有可用索引。 -
local_rag__read_file读取由local_rag管理的文件。 -
local_rag__save_chat将原始+摘要聊天保存到data/rag/saved_chats/. -
local_rag__save_image将base64图像保存到data/rag/images/.
外壳(1个工具)
shell__run_command在主机上执行shell命令。 功能强大且具有潜在危险性——适用于可信的本地设置。
剧作家(10种工具)
playwright__browser_navigateplaywright__browser_screenshotplaywright__browser_clickplaywright__browser_click_textplaywright__browser_fillplaywright__browser_selectplaywright__browser_select_textplaywright__browser_hoverplaywright__browser_hover_textplaywright__browser_evaluate
使用这些实现浏览器的完全自动化:
- 打开页面,
- 填写表格,
- 点击按钮/链接,
- 运行JS,
- 并截取屏幕截图。
SQLite(6个工具)
sqlite__read_querysqlite__write_querysqlite__create_tablesqlite__list_tablessqlite__describe_tablesqlite__append_insight
非常适合直接从LLM运行中存储结构化日志、指标和注释。
网络搜索(基础+高级,3个工具)
-
websearch__web_search使用片段快速搜索DuckDuckGo。 -
websearch_adv__full-web-search多引擎深度搜索,全页面提取。 -
websearch_adv__get-single-web-page-content强大的单页内容提取器。
研究(3种工具)
research__wikipedia_searchresearch__arxiv_searchresearch__images_search_commons
这些为技术/学术问题和图像查找提供了高信号参考材料。
Python REPL(3个工具)
python_repl__execpython_repl__resetpython_repl__pip_install
具有自己venv的持久Python进程:
- 运行分析代码,
- 解析/转换数据,
- 安装以下软件包
pandas,numpy等,无需接触系统Python。
刮刀(1个工具)
scrape__scrape_page获取一个URL并返回干净的文本和标题。 当你想要快速HTML时很好→不运行完整浏览器的文本。
民意调查(2个工具)
-
pollinations__generateImageUrl从文本提示生成图像URL(无付费API密钥)。 -
pollinations__listImageModels了解哪些型号可用。
CoinGecko(4工具)
CoinGecko MCP服务器的管理子集(基于SSE):
coingecko__get_simple_pricecoingecko__get_coins_marketscoingecko__get_range_coins_market_chartcoingecko__get_search
使用这些工具可以快速查找价格、市场列表和基本图表。
时钟(2个工具)
-
clock__now当前时间(UTC+本地)和ISO格式。 -
clock__add_delta从现在开始加上或减去时间增量(天/小时/分钟)。
从其他LLM客户端使用此集线器
CLI 游戏
-
将您的Gemini MCP配置指向:
http://localhost:3333/sse -
或者,使用
POST /gemini/v1/execute端点作为脚本中的Gemini风格适配器。
连接后,Gemini CLI可以:
- 列出工具,
- 调用50多种工具中的任何一种,
- 将RAG索引用作上下文。
OpenAI/ChatGPT Codex命令行界面
-
配置指向以下位置的自定义MCP端点:
http://localhost:3333/sse -
使用Codex CLI的MCP集成(您选择的服务器名称)访问与UI相同的工具和RAG。
ChatGPT(开发模式)
-
添加a 定制MCP连接器 在开发模式下。
-
如果
http://localhost:3333被环境阻挡:-
使用
ngrok(或类似)暴露它:ngrok http 3333 -
使用生成的 超文本传输安全协议 URL作为MCP端点。
-
然后,您可以在Dev Mode聊天中使用相同的工具/RAG堆栈。
Claude(桌面/MCP感知应用程序)
-
添加指向同一SSE端点的MCP服务器:
http://localhost:3333/sse -
Claude将看到中心中定义的工具,并可以像UI一样调用它们。
安保/安全注意事项
这个堆栈是 强大的它揭示了:
- 完全文件系统访问(在允许的根内读/写/移动/删除),
- 系统外壳执行,
- 浏览器自动化,
- SQLite写入。
推荐基础知识:
- 运行集线器 本地主机 或者在VPN后面。
- 只连接您信任的LLM客户端。
- 小心那些鼓励任意shell命令的提示。
- 使用 已屏蔽 选项卡禁用不希望特定客户端使用的工具。
- 对于“安全”与“全功率”环境,考虑单独的集线器实例或单独的工具注册表。
故障排除
-
正在使用的端口(
EADDRINUSE)-
看看有什么
:3333:lsof -i :3333 -
杀死它:
kill <pid> -
重新启动:
./start.sh
-
-
添加服务器时“测试连接”失败
-
仔细检查:
Command存在于您的PATH中(node,python3,npx等等)。Args对于该MCP服务器是正确的。CWD指向正确的文件夹。- 对于SSE:URL以结尾
/sse服务器实际上正在运行。
-
请重试并读取UI中返回的错误。
-
-
添加服务器后没有显示任何工具
-
点击 刷新工具 在UI中。
-
如果仍然为空:
- 检查
tool-registry/master.json对于拼写错误, - 重新启动网关(
Ctrl+C然后./start.sh).
- 检查
-
-
一台服务器不断出现故障/垃圾邮件错误
- 确保其依赖项已安装。
- 在注册表中暂时禁用它,或通过 已屏蔽 选项卡。
- 一旦事情解决,就重新添加它。
-
托管用户界面无法访问本地主机
-
使用
ngrok(或类似)以暴露您的集线器:ngrok http 3333 -
使用HTTPS URL作为该客户端中的MCP端点。
-
路线图/想法
该项目可以发展的一些方向:
-
可选的 基于矢量的RAG 层(嵌入+向量存储)。
-
每个索引元数据,而不是单个元数据
indexes.pkl. -
内建 调度器 用于基于时间的作业的MCP服务器(按计划运行工具)。
-
RAG+SQLite之上的更高级“注释”和“项目”API。
-
每个客户端的配置文件和预设(例如,不同LLM的不同默认值)。
-
更多捆绑服务器:
- 电子邮件/日历/联系人集成,
- 额外的搜索/抓取工具,
- 专业开发工具。
联系与协作
由...创建 杰夫·布尔格
- 网站: https://jeffbulger.dev
- 电子邮件:
admin@jeffbulger.dev - github: https://github.com/jbulger82
如果您对以下内容感兴趣:
- MCP工具和服务器,
- LLM“全栈”工作流,
- RAG+搜索,
- 自动化/“LLM运维”,
问题、公关和想法都是受欢迎的。
许可证
许可证(MIT、Apache-2.0等)。
