Plugged.in MCP Server
官方一個綜合代理,將多個 MCP 伺服器整合為單一 MCP。它提供跨伺服器的工具、提示、資源與模板的探索與管理,並附帶一個用於建置 MCP 伺服器時除錯的遊樂場。
文件
plugged.in MCP 中樞 — 代理 · 知識 · 記憶 · 工具
📋 概述
plugged.in MCP 代理伺服器是一個強大的中介軟體,它將多個模型上下文協定 (MCP) 伺服器聚合到一個統一的介面中。它從 plugged.in 應用程式 獲取工具、提示和資源配置,並智慧地將請求路由到適當的底層 MCP 伺服器。
此代理可與任何 MCP 客戶端(Claude、Cline、Cursor 等)無縫整合,同時透過 plugged.in 生態系統提供進階管理功能。
中樞支柱:知識 · 記憶 · 工具 · 代理
知識 (RAG v2 / AI 文件交換)
透過統一、具備歸屬感知的文件檢索來搜尋並奠定模型輸出基礎。MCP 伺服器可以在您的文件庫中建立和管理文件,並具備版本控制、可見性控制和模型歸屬。使用內建的 RAG 跨所有已連線來源進行搜尋,並返回相關片段和中繼資料。
記憶 (持久性 AI 記憶)
長期、工作區/設定檔範圍的記憶,可跨工作階段持續存在。該中樞與 plugged.in 應用程式的持久性記憶整合,因此代理的動作和洞察可以跨任務儲存和調用。內建記憶工具已在路線圖上,將在相同的驗證模型下公開低摩擦的 get/put/search 模式。
工具
將內建功能與下游 MCP 伺服器(STDIO、SSE、可串流 HTTP)聚合。工具發現會被快取並可依需求重新整理;中樞層級的發現會為任何 MCP 客戶端返回一個統一的目錄。該中樞支援工具、資源、資源範本和提示。
代理
為每個客戶端提供一個連線。以 STDIO(預設)或可串流 HTTP 模式執行,並可選擇 API 驗證和無狀態模式。可與 Claude Desktop、Cline、Cursor、MCP Inspector 等搭配使用;在集中管理政策和遙測的同時,保留您現有的客戶端配置。
⭐ 如果您覺得這個專案有用,請考慮在 GitHub 上給它一顆星! 這有助於我們接觸更多開發者,並激勵我們持續改進。
✨ 主要功能
🚀 核心能力
- 內建 AI 遊樂場:無需任何客戶端設定,即可使用 Claude、Gemini、OpenAI 和 xAI 即時測試您的 MCP
- 通用 MCP 相容性:可與任何 MCP 客戶端搭配使用,包括 Claude Desktop、Cline 和 Cursor
- 多伺服器支援:連線到 STDIO、SSE 和可串流 HTTP MCP 伺服器
- 雙重傳輸模式:以 STDIO(預設)或可串流 HTTP 伺服器模式執行代理
- 統一文件搜尋:使用內建的 RAG 功能跨所有已連線伺服器進行搜尋
- AI 文件交換 (RAG v2):MCP 伺服器可以在您的文件庫中建立和管理文件,並具備完整歸屬
- 來自任何模型的通知:接收即時通知,並可選擇電子郵件傳送
- 多工作區層:一鍵切換不同的 MCP 配置集
- API 驅動代理:從 plugged.in 應用程式 API 獲取能力,而非直接發現
- 完整 MCP 支援:處理工具、資源、資源範本和提示
- 自訂指令:支援格式化為 MCP 提示的伺服器特定指令
🎯 v1.5.0 新增功能 (RAG v2 - AI 文件交換)
- AI 文件建立:MCP 伺服器現在可以直接在您的文件庫中建立文件
- 完整的模型歸屬追蹤(哪個 AI 建立/更新了文件)
- 具備變更追蹤的版本歷史記錄
- 透過 SHA-256 雜湊進行內容去重
- 支援多種格式:MD、TXT、JSON、HTML、PDF 等
- 進階文件搜尋:具備 AI 篩選功能的增強型 RAG 查詢
- 按 AI 模型、提供者、日期範圍、標籤和來源類型篩選
- 具備相關性評分的語義搜尋
- 自動產生片段並突出顯示關鍵字
- 支援篩選:
ai_generated、upload或api來源
- 透過 MCP 進行文件管理:
- 設定文件可見性:私人、工作區或公開
- 文件版本的父子關係
- 基於設定檔的組織以及基於專案的範圍界定
- 文件處理的即時進度追蹤
🎯 v1.4.0 功能 (Registry v2 支援)
- OAuth 權杖管理:為可串流 HTTP MCP 伺服器提供無縫的 OAuth 驗證處理
- 從 plugged.in 應用程式自動擷取權杖
- 安全的權杖儲存和重新整理機制
- 無需客戶端驗證
- 增強的通知系統:雙向通知支援
- 傳送通知到 plugged.in 應用程式
- 從 MCP 伺服器接收通知
- 將通知標記為已讀/未讀
- 以程式設計方式刪除通知
- 趨勢分析:即時活動追蹤
- 每次工具呼叫都會被記錄和追蹤
- 有助於計算趨勢伺服器
- 使用量指標和受歡迎程度洞察
- Registry 整合:完整支援 Registry v2 功能
- 從 Registry 自動發現伺服器
- 安裝追蹤和指標
- 社群伺服器支援
📦 v1.1.0 功能
- 可串流 HTTP 支援:完整支援使用可串流 HTTP 傳輸的下游 MCP 伺服器
- HTTP 伺服器模式:以具有可配置連接埠的 HTTP 伺服器模式執行代理
- 靈活的驗證:HTTP 端點的選用 Bearer 權杖驗證
- 工作階段管理:選擇有狀態(基於工作階段)或無狀態操作模式
🎯 v1.0.0 核心功能
- 即時通知:透過全面的通知支援追蹤所有 MCP 活動
- RAG 整合:透過 plugged.in 應用程式支援文件增強查詢
- Inspector 指令碼:用於除錯和開發的自動化測試工具
- 健康監控:用於連線監控的內建 ping 端點
🔧 工具類別
該代理提供兩種不同的工具類別:
🔧 靜態內建工具(始終可用)
這些工具內建於代理中,無需任何伺服器配置即可運作:
pluggedin_discover_tools- 具備快取功能的智慧發現,可即時取得結果pluggedin_ask_knowledge_base- 跨文件進行 RAG 搜尋,具備 AI 篩選功能pluggedin_send_notification- 傳送通知,可選擇電子郵件傳送pluggedin_create_document- 在您的文件庫中建立 AI 產生的文件pluggedin_list_documents- 列出文件,具備篩選選項pluggedin_search_documents- 透過查詢搜尋特定文件pluggedin_get_document- 透過 ID 擷取特定文件的完整內容pluggedin_update_document- 更新或附加到現有文件
📋 剪貼簿工具(記憶系統)
pluggedin_clipboard_set- 按名稱(語義鍵)或索引設定剪貼簿條目pluggedin_clipboard_get- 按名稱、索引取得剪貼簿條目,或列出全部pluggedin_clipboard_delete- 按名稱、索引刪除剪貼簿條目,或清除全部pluggedin_clipboard_list- 列出所有剪貼簿條目及其元數據pluggedin_clipboard_push- 推送一個帶有自動遞增索引的值(堆疊推送)pluggedin_clipboard_pop- 彈出索引最高的條目(LIFO 行為)
⚡ 動態 MCP 工具(來自已連線的伺服器)
這些工具來自您配置的 MCP 伺服器,可以開啟/關閉:
- 資料庫工具(PostgreSQL、SQLite 等)
- 檔案系統工具
- API 整合工具
- 來自任何 MCP 伺服器的自訂工具
發現工具會智慧地顯示這兩個類別,讓 AI 模型能夠立即存取所有可用的功能。
🚀 發現工具用法
# Quick discovery - returns cached data instantly
pluggedin_discover_tools()
# Force refresh - shows current tools + runs background discovery
pluggedin_discover_tools({"force_refresh": true})
# Discover specific server
pluggedin_discover_tools({"server_uuid": "uuid-here"})
回應範例:
## 🔧 Static Built-in Tools (Always Available):
1. **pluggedin_discover_tools** - Smart discovery with caching
2. **pluggedin_rag_query** - RAG v2 search across documents with AI filtering
3. **pluggedin_send_notification** - Send notifications
4. **pluggedin_create_document** - (Coming Soon) Create AI-generated documents
## ⚡ Dynamic MCP Tools (8) - From Connected Servers:
1. **query** - Run read-only SQL queries
2. **generate_random_integer** - Generate secure random integers
...
📋 剪貼簿使用範例
剪貼簿系統為 AI 工作流程提供持久性記憶:
# Store a named entry (upserts if exists)
pluggedin_clipboard_set({
"name": "customer_context",
"value": "{\"name\": \"John Doe\", \"account_id\": \"12345\"}",
"contentType": "application/json"
})
# Store an indexed entry for ordered pipelines
pluggedin_clipboard_set({
"idx": 0,
"value": "First pipeline step result",
"createdByTool": "data_processor"
})
# Push to stack (auto-incrementing index)
pluggedin_clipboard_push({
"value": "Analysis result from step 1",
"contentType": "text/plain"
})
# Get a specific entry by name
pluggedin_clipboard_get({"name": "customer_context"})
# Pop from stack (LIFO - returns and removes highest index)
pluggedin_clipboard_pop()
# List all entries with metadata
pluggedin_clipboard_list({"limit": 20})
# Delete specific entry
pluggedin_clipboard_delete({"name": "customer_context"})
# Clear all clipboard entries
pluggedin_clipboard_delete({"clearAll": true})
📚 RAG v2 使用範例
增強的 RAG v2 系統允許 MCP 伺服器建立和搜尋文件,並具備完整的 AI 歸屬:
# Search for documents created by specific AI models
pluggedin_rag_query({
"query": "system architecture",
"filters": {
"modelName": "Claude 3 Opus",
"source": "ai_generated",
"tags": ["technical"]
}
})
# Search across all document sources
pluggedin_rag_query({
"query": "deployment guide",
"filters": {
"dateFrom": "2024-01-01",
"visibility": "workspace"
}
})
# Future: Create AI-generated documents (Coming Soon)
pluggedin_create_document({
"title": "Analysis Report",
"content": "# Market Analysis\n\nDetailed findings...",
"format": "md",
"tags": ["analysis", "market"],
"metadata": {
"model": {
"name": "Claude 3 Opus",
"provider": "Anthropic"
}
}
})
🚀 快速入門
先決條件
- Node.js 18+(建議 v20+)
- 來自 plugged.in 應用程式的 API 金鑰(在 plugged.in/api-keys 取得)
安裝
# Install and run with npx (latest v1.0.0)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
🔄 升級到 v1.0.0
對於現有安裝,請參閱我們的遷移指南以取得詳細的升級說明。
# Quick upgrade
npx -y @pluggedin/[email protected] --pluggedin-api-key YOUR_API_KEY
MCP 客戶端配置
Claude Desktop
將以下內容新增到您的 Claude Desktop 配置中:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cline
將以下內容新增到您的 Cline 配置中:
{
"mcpServers": {
"pluggedin": {
"command": "npx",
"args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
"env": {
"PLUGGEDIN_API_KEY": "YOUR_API_KEY"
}
}
}
}
Cursor
對於 Cursor,您可以使用命令列引數代替環境變數:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY
⚙️ 配置選項
環境變數
| 變數 | 說明 | 必要 | 預設值 |
|---|---|---|---|
PLUGGEDIN_API_KEY | 來自 plugged.in 應用程式的 API 金鑰 | 是 | - |
PLUGGEDIN_API_BASE_URL | plugged.in 應用程式的基礎 URL | 否 | https://plugged.in |
命令列引數
命令列引數的優先權高於環境變數:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY --pluggedin-api-base-url https://your-custom-url.com
傳輸選項
| 選項 | 說明 | 預設值 |
|---|---|---|
--transport <type> | 傳輸類型:stdio 或 streamable-http | stdio |
--port <number> | 可串流 HTTP 伺服器的連接埠 | 12006 |
--stateless | 為可串流 HTTP 啟用無狀態模式 | false |
--require-api-auth | 要求可串流 HTTP 請求的 API 金鑰 | false |
如需完整的選項清單:
npx -y @pluggedin/pluggedin-mcp-proxy@latest --help
🌐 可串流 HTTP 模式
代理可以作為 HTTP 伺服器執行,而不是 STDIO,從而實現基於 Web 的存取和遠端連線。
基本用法
# Run as HTTP server on default port (12006)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --pluggedin-api-key YOUR_API_KEY
# Custom port
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --port 8080 --pluggedin-api-key YOUR_API_KEY
# With authentication required
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --require-api-auth --pluggedin-api-key YOUR_API_KEY
# Stateless mode (new session per request)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --transport streamable-http --stateless --pluggedin-api-key YOUR_API_KEY
HTTP 端點
POST /mcp- 傳送 MCP 訊息GET /mcp- 伺服器傳送事件串流(選用)DELETE /mcp- 終止工作階段GET /health- 健康檢查端點
工作階段管理
在有狀態模式(預設)下,使用 mcp-session-id 標頭來維持工作階段:
# First request creates a session
curl -X POST http://localhost:12006/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
# Subsequent requests use the same session
curl -X POST http://localhost:12006/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: YOUR_SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"tool_name"},"id":2}'
驗證
使用 --require-api-auth 時,請將您的 API 金鑰作為 Bearer 權杖包含在內:
curl -X POST http://localhost:12006/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"ping","id":1}'
🐳 Docker 用法
您也可以使用 Docker 建置和執行代理伺服器。
建置映像
確保您已安裝並執行 Docker。導航到 pluggedin-mcp 目錄並執行:
docker build -t pluggedin-mcp-proxy:latest .
包含一個 .dockerignore 檔案以最佳化建置上下文。
執行容器
STDIO 模式(預設)
以 STDIO 模式執行容器以進行 MCP Inspector 測試:
docker run -it --rm \
-e PLUGGEDIN_API_KEY="YOUR_API_KEY" \
-e PLUGGEDIN_API_BASE_URL="YOUR_API_BASE_URL" \
--name pluggedin-mcp-container \
pluggedin-mcp-proxy:latest
可串流 HTTP 模式
以 HTTP 伺服器模式執行容器:
docker run -d --rm \
-e PLUGGEDIN_API_KEY="YOUR_API_KEY" \
-e PLUGGEDIN_API_BASE_URL="YOUR_API_BASE_URL" \
-p 12006:12006 \
--name pluggedin-mcp-http \
pluggedin-mcp-proxy:latest \
--transport streamable-http --port 12006
取代 YOUR_API_KEY 和 YOUR_API_BASE_URL(如果未使用預設的 https://plugged.in)。
使用 MCP Inspector 測試
當容器正在執行時,您可以使用 MCP Inspector 連線到它:
npx @modelcontextprotocol/inspector docker://pluggedin-mcp-container
這將連線到正在執行容器的標準輸入/輸出。
停止容器
在執行 docker run 的終端機中按下 Ctrl+C。--rm 旗標可確保容器在停止時自動移除。
☁️ Smithery Cloud 部署
將 plugged.in MCP 代理部署到 Smithery Cloud,以獲得託管、隨時可用的 MCP 伺服器存取。
快速入門
- 前往 smithery.ai 並登入
- 連結您的 GitHub 帳號並選擇
pluggedin-mcp儲存庫 - 在 Smithery 介面中設定您的 Plugged.in API 金鑰
- 部署並取得您的 HTTPS 端點
優點
- 24/7 全天候運作:您的代理伺服器隨時保持運行
- 零設定:Smithery 會從
smithery.yaml自動偵測設定 - 自動擴展:處理多個並行連線
- 網頁存取:非常適合網頁應用程式和遠端客戶端
文件
如需完整的部署說明、設定選項、疑難排解和技術細節,請參閱:
自主代理 (預覽版)
此中樞旨在端對端支援代理循環:
MCP Client → plugged.in MCP Hub → (Plan → Act → Reflect)
↘ Knowledge ↘ Memory ↘ Tools
- 規劃 — 推導目標和限制條件,形成任務圖。
- 行動 — 從統一目錄呼叫工具;在 STDIO/SSE/HTTP 伺服器之間安全路由。
- 反思 — 將結果持續儲存到記憶體和知識庫(文件、筆記、成品)中,以改善後續步驟。
安全性與維運
在可串流的 HTTP 模式下啟用 --require-api-auth;對命令、引數和環境變數使用允許清單。將伺服器層級驗證與針對提示注入強化的客戶端提示結合。利用現有的日誌記錄/遙測來追蹤工具使用情況和文件變更。
🏗️ 系統架構
plugged.in MCP 代理伺服器作為 MCP 客戶端與多個底層 MCP 伺服器之間的橋樑:
sequenceDiagram
participant MCPClient as MCP Client (e.g. Claude Desktop)
participant PluggedinMCP as plugged.in MCP Proxy
participant PluggedinApp as plugged.in App
participant MCPServers as Underlying MCP Servers
MCPClient ->> PluggedinMCP: Request list tools/resources/prompts
PluggedinMCP ->> PluggedinApp: Get capabilities via API
PluggedinApp ->> PluggedinMCP: Return capabilities (prefixed)
MCPClient ->> PluggedinMCP: Call tool/read resource/get prompt
alt Standard capability
PluggedinMCP ->> PluggedinApp: Resolve capability to server
PluggedinApp ->> PluggedinMCP: Return server details
PluggedinMCP ->> MCPServers: Forward request to target server
MCPServers ->> PluggedinMCP: Return response
else Custom instruction
PluggedinMCP ->> PluggedinApp: Get custom instruction
PluggedinApp ->> PluggedinMCP: Return formatted messages
end
PluggedinMCP ->> MCPClient: Return response
alt Discovery tool (Smart Caching)
MCPClient ->> PluggedinMCP: Call pluggedin_discover_tools
alt Cached data available
PluggedinMCP ->> PluggedinApp: Check cached capabilities
PluggedinApp ->> PluggedinMCP: Return cached tools/resources/prompts
PluggedinMCP ->> MCPClient: Return instant results (static + dynamic)
else Force refresh or no cache
PluggedinMCP ->> PluggedinApp: Trigger background discovery
PluggedinMCP ->> MCPClient: Return current tools + "discovery running"
PluggedinApp ->> MCPServers: Connect and discover capabilities (background)
MCPServers ->> PluggedinApp: Return fresh capabilities
end
end
🔄 工作流程
- 設定:代理伺服器從 plugged.in 應用程式擷取伺服器設定
- 智慧探索 (
pluggedin_discover_tools):- 快取檢查:首先檢查現有的快取資料(< 1 秒)
- 即時回應:立即回傳靜態工具和已快取的動態工具
- 背景重新整理:針對
force_refresh=true,在顯示目前工具的同時於背景執行探索 - 全新探索:僅在沒有快取資料時才執行完整探索
- 功能列表:代理伺服器從 plugged.in 應用程式 API 擷取已探索的功能
tools/list:從/api/tools擷取(包含靜態和動態工具)resources/list:從/api/resources擷取resource-templates/list:從/api/resource-templates擷取prompts/list:從/api/prompts和/api/custom-instructions擷取,合併結果
- 功能解析:代理伺服器將功能解析到目標伺服器
tools/call:從工具名稱解析前綴,在內部對應表中查詢伺服器resources/read:呼叫/api/resolve/resource?uri=...以取得伺服器詳細資訊prompts/get:檢查自訂指令前綴或呼叫/api/resolve/prompt?name=...
- 請求路由:請求被路由到適當的底層 MCP 伺服器
- 回應處理:來自底層伺服器的回應會傳回給客戶端
🔒 安全性功能
plugged.in MCP 代理伺服器實施了全面的安全措施來保護您的系統和資料:
輸入驗證與清理
- 命令注入防護:所有命令和引數在執行前都會根據允許清單進行驗證
- 環境變數安全:安全解析
.env檔案,並正確處理引號和多行值 - 權杖驗證:針對 API 金鑰和驗證權杖使用強大的正規表示式模式(32-64 個十六進位字元)
網路安全
- SSRF 防護:URL 驗證會封鎖對以下項目的存取:
- 本地主機和回送位址(127.0.0.1、::1)
- 私人 IP 範圍(10.x、172.16-31.x、192.168.x)
- 連結本地位址(169.254.x)
- 多播和保留範圍
- 常見的內部服務連接埠(SSH、資料庫等)
- 標頭驗證:透過以下方式防範標頭注入:
- 封鎖危險標頭
- 符合 RFC 7230 的標頭名稱驗證
- 控制字元偵測
- 標頭大小限制(最大 8KB)
- 速率限制:
- 工具呼叫:每分鐘 60 個請求
- API 呼叫:每分鐘 100 個請求
- 錯誤清理:透過清理錯誤訊息來防止資訊洩露
程序安全
- 安全命令執行:使用
execFile()而非exec()來防止 Shell 注入 - 命令允許清單:僅允許執行:
node、npx- Node.js 命令python、python3- Python 命令uv、uvx、uvenv- UV Python 工具
- 引數清理:從所有引數中移除 Shell 中介字元和控制字元
- 環境變數驗證:僅允許使用底線的英數字元鍵
可串流 HTTP 安全
- 延遲驗證:工具探索不需要驗證,進而提升相容性
- 工作階段安全:加密安全的工作階段 ID 產生
- CORS 防護:可設定的 CORS 標頭,用於網頁存取
- 請求大小限制:防止透過大型酬載進行 DoS 攻擊
安全性工具
專用的 security-utils.ts 模組提供:
- Bearer 權杖驗證
- 具備 SSRF 防護的 URL 驗證
- 命令引數清理
- 環境變數驗證
- 速率限制實作
- 錯誤訊息清理
如需詳細的安全性實作,請參閱 SECURITY.md。
🧩 與 plugged.in 應用程式整合
plugged.in MCP 代理伺服器旨在與 plugged.in 應用程式 無縫協作,該應用程式提供:
- 用於管理 MCP 伺服器設定的網頁介面
- 集中式功能探索(工具、資源、範本、提示)
- RAG v2 文件庫:上傳文件並啟用 AI 生成的內容,並附有完整歸屬
- 自訂指令管理
- 針對不同設定集的多工作區支援
- 用於使用任何 AI 模型測試 MCP 工具的互動式演練場
- 使用者驗證和 API 金鑰管理
- AI 文件交換:建立、搜尋和管理文件,並追蹤模型歸屬
📚 相關資源
🤝 貢獻
歡迎貢獻!請隨時提交 Pull Request。
📝 近期更新
版本 1.9.0(2025 年 9 月)- 安全性增強
🔒 增強的 HTML 清理
- 業界標準清理:以
sanitize-html函式庫取代了自訂的基於正規表示式的 HTML 清理 - XSS 防護:全面防範跨網站指令碼攻擊
- HTML 屬性安全:針對 HTML 屬性內容(引號、& 符號)增強清理
- 格式字串注入:修復了日誌記錄中的格式字串注入漏洞
- 安全測試:針對所有清理功能提供全面的測試覆蓋率
🛡️ 安全性改進
- CodeQL 合規性:解決了 GitHub CodeQL 分析所發現的所有安全漏洞
- 輸入驗證:加強了所有功能中的輸入驗證和清理
- 相依性更新:新增了
sanitize-html以實現強大的 HTML 內容過濾 - 測試覆蓋率:透過 XSS 攻擊防護驗證增強了安全測試套件
版本 1.5.0(2025 年 1 月)- RAG v2
🤖 AI 文件交換
- AI 生成的文件:MCP 伺服器現在可以在您的文件庫中建立文件,並附有完整的 AI 歸屬
- 模型歸屬追蹤:記錄哪些 AI 模型建立或更新了每份文件的完整歷史
- 進階文件搜尋:按 AI 模型、提供者、日期、標籤和來源類型篩選
- 文件版本控制:追蹤 AI 生成內容的變更並維護版本歷史
- 多來源支援:來自上傳、AI 生成或 API 整合的文件
🔍 增強的 RAG 功能
- 語義搜尋:透過 PostgreSQL 全文搜尋改進相關性評分
- 智慧篩選:按可見性、模型歸屬和文件來源篩選結果
- 片段生成:自動擷取片段並突顯關鍵字
- 效能最佳化:透過最佳化的索引加快查詢速度
版本 1.2.0(2025 年 1 月)
🔒 安全性增強
- URL 驗證:全面的 SSRF 防護,封鎖私人 IP、本地主機和危險連接埠
- 命令允許清單:僅允許執行已核准的命令(node、npx、python 等)
- 標頭清理:防範標頭注入攻擊
- 延遲驗證:透過無需驗證的工具探索改進 Smithery 相容性
🚀 效能改進
- 最佳化的 Docker 建置:多階段建置以最小化容器佔用空間
- 僅生產相依性:從 Docker 映像中排除測試檔案和開發相依性
- 資源效率:專為在資源受限的環境中部署而設計
🔧 技術改進
- 增強了可串流 HTTP 傳輸中的錯誤處理
- 更好的工作階段清理和記憶體管理
- 改進了 TypeScript 型別和程式碼組織
版本 1.1.0(2024 年 12 月)
🚀 新功能
- 可串流 HTTP 支援:使用現代化的可串流 HTTP 傳輸連接到下游 MCP 伺服器
- HTTP 伺服器模式:將代理伺服器作為 HTTP 伺服器運行,以實現網頁存取
- 靈活的工作階段管理:在無狀態或有狀態模式之間選擇
- 驗證選項:HTTP 端點的選用 Bearer 權杖驗證
- 健康監控:用於服務監控的
/health端點
🔧 技術改進
- 將 MCP SDK 更新至 v1.13.1 以獲得最新的協定支援
- 新增了 Express.js 整合以實現 HTTP 伺服器功能
- 增強了 TypeScript 型別以提供更好的開發者體驗
版本 1.0.0(2025 年 6 月)
🎯 主要功能
- 即時通知系統:透過全面的通知支援追蹤所有 MCP 活動
- RAG 整合:透過 plugged.in 應用程式支援文件增強的查詢
- 檢查器指令碼:用於除錯和開發的新型自動化測試工具
- 健康監控:用於連線監控的內建 ping 端點
🔒 安全性增強
- 輸入驗證:針對所有輸入的業界標準驗證和清理
- URL 安全:具備 SSRF 防護的增強型 URL 驗證
- 環境安全:使用 dotenv 安全解析環境變數
- 錯誤清理:防止在錯誤回應中洩露資訊
🐛 錯誤修正
- 修復了 JSON-RPC 協定干擾(stdout 與 stderr 分離)
- 解決了開發環境的本地主機 URL 驗證問題
- 修復了檢查器指令碼中的 API 金鑰處理
- 改進了連線穩定性和記憶體管理
🔧 開發者工具
- 用於自動化測試的新型檢查器指令碼
- 改進的錯誤訊息和除錯功能
- 使用正確的 stderr 用法的結構化日誌記錄
- 增強的 TypeScript 型別安全
如需完整詳細資訊,請參閱版本資訊。
🧪 測試與開發
本地開發
測試是為了開發目的而包含在內,但會從 Docker 建置中排除,以最小化容器佔用空間。
# Run tests locally
npm test
# or
./scripts/test-local.sh
# Run tests in watch mode
npm run test:watch
# Run tests with UI
npm run test:ui
輕量級 Docker 建置
Docker 映像已針對最小佔用空間進行最佳化:
- 多階段建置流程
- 最終映像中僅包含生產相依性
- 排除測試檔案和開發相依性
- 針對資源受限的環境進行最佳化
# Build optimized Docker image
docker build -t pluggedin-mcp .
# Check image size
docker images pluggedin-mcp
📄 授權
本專案採用 MIT 授權條款 - 詳情請參閱 LICENSE 檔案。