Plugged.in MCP Server

官方

一個綜合代理,將多個 MCP 伺服器整合為單一 MCP。它提供跨伺服器的工具、提示、資源與模板的探索與管理,並附帶一個用於建置 MCP 伺服器時除錯的遊樂場。

文件

plugged.in MCP 中樞 — 代理 · 知識 · 記憶 · 工具

plugged.in Logo

AI 資料交換的十字路口

一個統一 MCP 中樞,為您的 AI 提供知識記憶工具 — 不僅僅是代理。從單一連線管理和測試所有 MCP 伺服器,同時為跨客戶端的文件感知和記憶增強工作流程提供動力。

smithery badge Version GitHub Stars License TypeScript MCP MCP Badge

📋 概述

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_generateduploadapi 來源
  • 透過 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_URLplugged.in 應用程式的基礎 URLhttps://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>傳輸類型:stdiostreamable-httpstdio
--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_KEYYOUR_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 伺服器存取。

快速入門

  1. 前往 smithery.ai 並登入
  2. 連結您的 GitHub 帳號並選擇 pluggedin-mcp 儲存庫
  3. 在 Smithery 介面中設定您的 Plugged.in API 金鑰
  4. 部署並取得您的 HTTPS 端點

優點

  • 24/7 全天候運作:您的代理伺服器隨時保持運行
  • 零設定:Smithery 會從 smithery.yaml 自動偵測設定
  • 自動擴展:處理多個並行連線
  • 網頁存取:非常適合網頁應用程式和遠端客戶端

文件

如需完整的部署說明、設定選項、疑難排解和技術細節,請參閱:

📖 Smithery 部署指南

自主代理 (預覽版)

此中樞旨在端對端支援代理循環:

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

🔄 工作流程

  1. 設定:代理伺服器從 plugged.in 應用程式擷取伺服器設定
  2. 智慧探索 (pluggedin_discover_tools):
    • 快取檢查:首先檢查現有的快取資料(< 1 秒)
    • 即時回應:立即回傳靜態工具和已快取的動態工具
    • 背景重新整理:針對 force_refresh=true,在顯示目前工具的同時於背景執行探索
    • 全新探索:僅在沒有快取資料時才執行完整探索
  3. 功能列表:代理伺服器從 plugged.in 應用程式 API 擷取已探索的功能
    • tools/list:從 /api/tools 擷取(包含靜態和動態工具)
    • resources/list:從 /api/resources 擷取
    • resource-templates/list:從 /api/resource-templates 擷取
    • prompts/list:從 /api/prompts/api/custom-instructions 擷取,合併結果
  4. 功能解析:代理伺服器將功能解析到目標伺服器
    • tools/call:從工具名稱解析前綴,在內部對應表中查詢伺服器
    • resources/read:呼叫 /api/resolve/resource?uri=... 以取得伺服器詳細資訊
    • prompts/get:檢查自訂指令前綴或呼叫 /api/resolve/prompt?name=...
  5. 請求路由:請求被路由到適當的底層 MCP 伺服器
  6. 回應處理:來自底層伺服器的回應會傳回給客戶端

🔒 安全性功能

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 注入
  • 命令允許清單:僅允許執行:
    • nodenpx - Node.js 命令
    • pythonpython3 - Python 命令
    • uvuvxuvenv - 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 檔案。

🙏 致謝