Plugged.in MCP Server

chính thức

Một proxy toàn diện kết hợp nhiều máy chủ MCP thành một MCP duy nhất. Nó cung cấp khả năng khám phá và quản lý các công cụ, lời nhắc, tài nguyên và mẫu trên các máy chủ, cùng với một sân chơi để gỡ lỗi khi xây dựng máy chủ MCP.

Tài liệu

plugged.in MCP Hub — Proxy · Tri thức · Bộ nhớ · Công cụ

plugged.in Logo

Ngã tư trao đổi dữ liệu AI

Một hub MCP hợp nhất cung cấp cho AI của bạn Tri thức, Bộ nhớ, và Công cụ — không chỉ là proxy. Quản lý và kiểm tra tất cả máy chủ MCP từ một kết nối duy nhất, đồng thời hỗ trợ các luồng công việc nhận biết tài liệu và tăng cường bộ nhớ trên nhiều máy khách.

smithery badge Version GitHub Stars License TypeScript MCP MCP Badge

📋 Tổng quan

Máy chủ Proxy MCP plugged.in là một middleware mạnh mẽ, tập hợp nhiều máy chủ Model Context Protocol (MCP) vào một giao diện thống nhất duy nhất. Nó lấy cấu hình công cụ, prompt và tài nguyên từ ứng dụng plugged.in và định tuyến thông minh các yêu cầu đến các máy chủ MCP cơ bản phù hợp.

Proxy này cho phép tích hợp liền mạch với bất kỳ máy khách MCP nào (Claude, Cline, Cursor, v.v.) đồng thời cung cấp các khả năng quản lý nâng cao thông qua hệ sinh thái plugged.in.

Trụ cột Hub: Tri thức · Bộ nhớ · Công cụ · Proxy

Tri thức (RAG v2 / Trao đổi tài liệu AI)
Tìm kiếm và củng cố đầu ra của mô hình bằng truy xuất tài liệu hợp nhất, có nhận biết ghi nhận tác giả. Máy chủ MCP có thể tạo và quản lý tài liệu trong thư viện của bạn với phiên bản, kiểm soát hiển thị và ghi nhận mô hình. Sử dụng RAG tích hợp để tìm kiếm trên tất cả các nguồn đã kết nối và trả về các đoạn trích và siêu dữ liệu liên quan.

Bộ nhớ (Bộ nhớ AI bền vững)
Bộ nhớ tồn tại lâu dài, theo phạm vi không gian làm việc/hồ sơ, tồn tại qua các phiên. Hub tích hợp với bộ nhớ bền vững của ứng dụng plugged.in để các hành động và thông tin chi tiết của tác nhân có thể được lưu trữ và truy xuất qua các tác vụ. Các công cụ bộ nhớ tích hợp đang trong lộ trình để hiển thị các mẫu get/put/search ít trở ngại theo cùng mô hình xác thực.

Công cụ
Tập hợp các khả năng tích hợp với các máy chủ MCP hạ nguồn (STDIO, SSE, Streamable HTTP). Khám phá công cụ được lưu vào bộ nhớ đệm và có thể làm mới theo yêu cầu; khám phá cấp hub trả về một danh mục hợp nhất cho bất kỳ máy khách MCP nào. Hub hỗ trợ công cụ, tài nguyên, mẫu tài nguyên và prompt.

Proxy
Một kết nối cho mọi máy khách. Chạy dưới dạng STDIO (mặc định) hoặc Streamable HTTP với xác thực API tùy chọn và chế độ không trạng thái. Hoạt động với Claude Desktop, Cline, Cursor, MCP Inspector và hơn thế nữa; giữ nguyên cấu hình máy khách hiện có trong khi tập trung hóa chính sách và đo lường từ xa.

Nếu bạn thấy dự án này hữu ích, vui lòng xem xét tặng một sao trên GitHub! Điều đó giúp chúng tôi tiếp cận nhiều nhà phát triển hơn và tạo động lực để tiếp tục cải thiện.

✨ Tính năng chính

🚀 Khả năng cốt lõi

  • Sân chơi AI tích hợp: Kiểm tra MCP của bạn ngay lập tức với Claude, Gemini, OpenAI và xAI mà không cần thiết lập máy khách
  • Tương thích MCP phổ quát: Hoạt động với bất kỳ máy khách MCP nào bao gồm Claude Desktop, Cline và Cursor
  • Hỗ trợ đa máy chủ: Kết nối với máy chủ MCP STDIO, SSE và Streamable HTTP
  • Chế độ truyền tải kép: Chạy proxy dưới dạng STDIO (mặc định) hoặc máy chủ Streamable HTTP
  • Tìm kiếm tài liệu hợp nhất: Tìm kiếm trên tất cả các máy chủ đã kết nối với khả năng RAG tích hợp
  • Trao đổi tài liệu AI (RAG v2): Máy chủ MCP có thể tạo và quản lý tài liệu trong thư viện của bạn với ghi nhận tác giả đầy đủ
  • Thông báo từ bất kỳ mô hình nào: Nhận thông báo thời gian thực với tùy chọn gửi qua email
  • Lớp đa không gian làm việc: Chuyển đổi giữa các bộ cấu hình MCP khác nhau chỉ với một cú nhấp chuột
  • Proxy điều khiển bằng API: Lấy khả năng từ API ứng dụng plugged.in thay vì khám phá trực tiếp
  • Hỗ trợ MCP đầy đủ: Xử lý công cụ, tài nguyên, mẫu tài nguyên và prompt
  • Hướng dẫn tùy chỉnh: Hỗ trợ hướng dẫn cụ thể cho máy chủ được định dạng dưới dạng prompt MCP

🎯 Mới trong v1.5.0 (RAG v2 - Trao đổi tài liệu AI)

  • Tạo tài liệu AI: Máy chủ MCP giờ đây có thể tạo tài liệu trực tiếp trong thư viện của bạn
    • Theo dõi ghi nhận mô hình đầy đủ (AI nào đã tạo/cập nhật tài liệu)
    • Lịch sử phiên bản với theo dõi thay đổi
    • Loại bỏ trùng lặp nội dung qua băm SHA-256
    • Hỗ trợ nhiều định dạng: MD, TXT, JSON, HTML, PDF và hơn thế nữa
  • Tìm kiếm tài liệu nâng cao: Truy vấn RAG nâng cao với lọc AI
    • Lọc theo mô hình AI, nhà cung cấp, khoảng thời gian, thẻ và loại nguồn
    • Tìm kiếm ngữ nghĩa với điểm số liên quan
    • Tạo đoạn trích tự động với đánh dấu từ khóa
    • Hỗ trợ lọc: nguồn ai_generated, upload, hoặc api
  • Quản lý tài liệu qua MCP:
    • Đặt chế độ hiển thị tài liệu: riêng tư, không gian làm việc hoặc công khai
    • Mối quan hệ cha-con cho các phiên bản tài liệu
    • Tổ chức dựa trên hồ sơ cùng với phạm vi dựa trên dự án
    • Theo dõi tiến độ thời gian thực cho xử lý tài liệu

🎯 Tính năng từ v1.4.0 (Hỗ trợ Registry v2)

  • Quản lý token OAuth: Xử lý xác thực OAuth liền mạch cho máy chủ MCP Streamable HTTP
    • Tự động lấy token từ ứng dụng plugged.in
    • Lưu trữ token an toàn và cơ chế làm mới
    • Không cần xác thực phía máy khách
  • Hệ thống thông báo nâng cao: Hỗ trợ thông báo hai chiều
    • Gửi thông báo đến ứng dụng plugged.in
    • Nhận thông báo từ máy chủ MCP
    • Đánh dấu thông báo đã đọc/chưa đọc
    • Xóa thông báo theo chương trình
  • Phân tích xu hướng: Theo dõi hoạt động thời gian thực
    • Mọi lệnh gọi công cụ đều được ghi nhật ký và theo dõi
    • Đóng góp vào tính toán máy chủ xu hướng
    • Số liệu sử dụng và thông tin chi tiết về mức độ phổ biến
  • Tích hợp Registry: Hỗ trợ đầy đủ các tính năng Registry v2
    • Tự động khám phá máy chủ từ registry
    • Theo dõi cài đặt và số liệu
    • Hỗ trợ máy chủ cộng đồng

📦 Tính năng từ v1.1.0

  • Hỗ trợ Streamable HTTP: Hỗ trợ đầy đủ cho máy chủ MCP hạ nguồn sử dụng truyền tải Streamable HTTP
  • Chế độ máy chủ HTTP: Chạy proxy như một máy chủ HTTP với cổng có thể cấu hình
  • Xác thực linh hoạt: Xác thực token Bearer tùy chọn cho các điểm cuối HTTP
  • Quản lý phiên: Chọn giữa chế độ có trạng thái (dựa trên phiên) hoặc không trạng thái

🎯 Tính năng cốt lõi từ v1.0.0

  • Thông báo thời gian thực: Theo dõi tất cả hoạt động MCP với hỗ trợ thông báo toàn diện
  • Tích hợp RAG: Hỗ trợ truy vấn tăng cường tài liệu thông qua ứng dụng plugged.in
  • Tập lệnh kiểm tra: Công cụ kiểm tra tự động để gỡ lỗi và phát triển
  • Giám sát tình trạng: Điểm cuối ping tích hợp để giám sát kết nối

🔧 Danh mục công cụ

Proxy cung cấp hai danh mục công cụ riêng biệt:

🔧 Công cụ tích hợp tĩnh (Luôn sẵn sàng)

Những công cụ này được tích hợp vào proxy và hoạt động mà không cần cấu hình máy chủ:

  • pluggedin_discover_tools - Khám phá thông minh với bộ nhớ đệm cho kết quả tức thì
  • pluggedin_ask_knowledge_base - Tìm kiếm RAG trên tài liệu của bạn với khả năng lọc AI
  • pluggedin_send_notification - Gửi thông báo với tùy chọn gửi qua email
  • pluggedin_create_document - Tạo tài liệu do AI tạo trong thư viện của bạn
  • pluggedin_list_documents - Liệt kê tài liệu với tùy chọn lọc
  • pluggedin_search_documents - Tìm kiếm tài liệu cụ thể theo truy vấn
  • pluggedin_get_document - Truy xuất nội dung đầy đủ của một tài liệu cụ thể theo ID
  • pluggedin_update_document - Cập nhật hoặc thêm vào tài liệu hiện có

📋 Công cụ Clipboard (Hệ thống bộ nhớ)

  • pluggedin_clipboard_set - Đặt mục clipboard theo tên (khóa ngữ nghĩa) hoặc chỉ mục
  • pluggedin_clipboard_get - Lấy mục clipboard theo tên, chỉ mục hoặc liệt kê tất cả
  • pluggedin_clipboard_delete - Xóa mục clipboard theo tên, chỉ mục hoặc xóa tất cả
  • pluggedin_clipboard_list - Liệt kê tất cả mục clipboard với siêu dữ liệu
  • pluggedin_clipboard_push - Đẩy một giá trị với chỉ mục tự động tăng (đẩy ngăn xếp)
  • pluggedin_clipboard_pop - Lấy ra mục có chỉ mục cao nhất (hành vi LIFO)

⚡ Công cụ MCP động (Từ máy chủ đã kết nối)

Những công cụ này đến từ máy chủ MCP đã cấu hình của bạn và có thể bật/tắt:

  • Công cụ cơ sở dữ liệu (PostgreSQL, SQLite, v.v.)
  • Công cụ hệ thống tệp
  • Công cụ tích hợp API
  • Công cụ tùy chỉnh từ bất kỳ máy chủ MCP nào

Công cụ khám phá hiển thị thông minh cả hai danh mục, cung cấp cho mô hình AI quyền truy cập ngay lập tức vào tất cả các khả năng sẵn có.

🚀 Cách sử dụng công cụ khám phá

# 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"})

Phản hồi ví dụ:

## 🔧 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
...

📋 Ví dụ sử dụng Clipboard

Hệ thống clipboard cung cấp bộ nhớ bền vững cho các luồng công việc 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})

📚 Ví dụ sử dụng RAG v2

Hệ thống RAG v2 nâng cao cho phép máy chủ MCP tạo và tìm kiếm tài liệu với ghi nhận AI đầy đủ:

# 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"
    }
  }
})

🚀 Bắt đầu nhanh

Điều kiện tiên quyết

  • Node.js 18+ (khuyến nghị v20+)
  • Khóa API từ ứng dụng plugged.in (lấy tại plugged.in/api-keys)

Cài đặt

# Install and run with npx (latest v1.0.0)
npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY

🔄 Nâng cấp lên v1.0.0

Đối với các cài đặt hiện có, xem Hướng dẫn di chuyển để biết hướng dẫn nâng cấp chi tiết.

# Quick upgrade
npx -y @pluggedin/[email protected] --pluggedin-api-key YOUR_API_KEY

Cấu hình cho máy khách MCP

Claude Desktop

Thêm phần sau vào cấu hình Claude Desktop của bạn:

{
  "mcpServers": {
    "pluggedin": {
      "command": "npx",
      "args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
      "env": {
        "PLUGGEDIN_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Cline

Thêm phần sau vào cấu hình Cline của bạn:

{
  "mcpServers": {
    "pluggedin": {
      "command": "npx",
      "args": ["-y", "@pluggedin/pluggedin-mcp-proxy@latest"],
      "env": {
        "PLUGGEDIN_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Cursor

Đối với Cursor, bạn có thể sử dụng đối số dòng lệnh thay vì biến môi trường:

npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY

⚙️ Tùy chọn cấu hình

Biến môi trường

BiếnMô tảBắt buộcMặc định
PLUGGEDIN_API_KEYKhóa API từ ứng dụng plugged.in-
PLUGGEDIN_API_BASE_URLURL cơ sở cho ứng dụng plugged.inKhônghttps://plugged.in

Đối số dòng lệnh

Đối số dòng lệnh được ưu tiên hơn biến môi trường:

npx -y @pluggedin/pluggedin-mcp-proxy@latest --pluggedin-api-key YOUR_API_KEY --pluggedin-api-base-url https://your-custom-url.com

Tùy chọn truyền tải

Tùy chọnMô tảMặc định
--transport <type>Loại truyền tải: stdio hoặc streamable-httpstdio
--port <number>Cổng cho máy chủ Streamable HTTP12006
--statelessBật chế độ không trạng thái cho Streamable HTTPfalse
--require-api-authYêu cầu khóa API cho yêu cầu Streamable HTTPfalse

Để có danh sách đầy đủ các tùy chọn:

npx -y @pluggedin/pluggedin-mcp-proxy@latest --help

🌐 Chế độ Streamable HTTP

Proxy có thể chạy như một máy chủ HTTP thay vì STDIO, cho phép truy cập dựa trên web và kết nối từ xa.

Cách sử dụng cơ bản

# 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

Điểm cuối HTTP

  • POST /mcp - Gửi tin nhắn MCP
  • GET /mcp - Luồng sự kiện do máy chủ gửi (tùy chọn)
  • DELETE /mcp - Kết thúc phiên
  • GET /health - Điểm cuối kiểm tra tình trạng

Quản lý phiên

Trong chế độ có trạng thái (mặc định), sử dụng tiêu đề mcp-session-id để duy trì phiên:

# 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}'

Xác thực

Khi sử dụng --require-api-auth, bao gồm khóa API của bạn dưới dạng token 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}'

🐳 Sử dụng Docker

Bạn cũng có thể xây dựng và chạy máy chủ proxy bằng Docker.

Xây dựng image

Đảm bảo bạn đã cài đặt và chạy Docker. Điều hướng đến thư mục pluggedin-mcp và chạy:

docker build -t pluggedin-mcp-proxy:latest .

Một tệp .dockerignore được bao gồm để tối ưu hóa ngữ cảnh xây dựng.

Chạy container

Chế độ STDIO (Mặc định)

Chạy container ở chế độ STDIO để kiểm tra 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

Chế độ Streamable HTTP

Chạy container như một máy chủ 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

Thay thế YOUR_API_KEYYOUR_API_BASE_URL (nếu không sử dụng mặc định https://plugged.in).

Kiểm tra với MCP Inspector

Trong khi container đang chạy, bạn có thể kết nối với nó bằng MCP Inspector:

npx @modelcontextprotocol/inspector docker://pluggedin-mcp-container

Điều này sẽ kết nối với đầu vào/đầu ra tiêu chuẩn của container đang chạy.

Dừng container

Nhấn Ctrl+C trong terminal nơi docker run đang thực thi. Cờ --rm đảm bảo container được tự động xóa khi dừng.

☁️ Triển khai Smithery Cloud

Triển khai Proxy MCP plugged.in lên Smithery Cloud để có quyền truy cập được lưu trữ, luôn sẵn sàng vào máy chủ MCP của bạn.

Bắt đầu nhanh

  1. Truy cập smithery.ai và đăng nhập
  2. Kết nối tài khoản GitHub của bạn và chọn repository pluggedin-mcp
  3. Cấu hình khóa API Plugged.in trong giao diện Smithery
  4. Triển khai và nhận điểm cuối HTTPS của bạn

Lợi ích

  • Sẵn sàng 24/7: Proxy của bạn luôn chạy
  • Không cần cấu hình: Smithery tự động phát hiện cài đặt từ smithery.yaml
  • Tự động mở rộng: Xử lý nhiều kết nối đồng thời
  • Truy cập web: Hoàn hảo cho ứng dụng web và máy khách từ xa

Tài liệu

Để biết hướng dẫn triển khai đầy đủ, tùy chọn cấu hình, khắc phục sự cố và chi tiết kỹ thuật, hãy xem:

📖 Hướng dẫn triển khai Smithery

Tác nhân tự động (Xem trước)

Hub được thiết kế để hỗ trợ các vòng lặp tác nhân từ đầu đến cuối:

MCP Client  →  plugged.in MCP Hub  →  (Plan → Act → Reflect)
                                ↘  Knowledge  ↘  Memory  ↘  Tools
  • Lập kế hoạch — suy ra mục tiêu và ràng buộc, hình thành đồ thị tác vụ.
  • Hành động — gọi công cụ từ danh mục thống nhất; định tuyến an toàn qua các máy chủ STDIO/SSE/HTTP.
  • Phản ánh — lưu kết quả vào Bộ nhớ và Tri thức (tài liệu, ghi chú, tạo phẩm) để cải thiện các bước tiếp theo.

An toàn & Vận hành
Bật --require-api-auth ở chế độ HTTP có thể truyền trực tuyến; sử dụng danh sách cho phép đối với lệnh, đối số và biến môi trường. Kết hợp xác thực cấp máy chủ với lời nhắc phía máy khách được tăng cường chống chèn lời nhắc. Tận dụng ghi nhật ký/đo từ xa hiện có để theo dõi việc sử dụng công cụ và đột biến tài liệu.

🏗️ Kiến trúc hệ thống

Máy chủ Proxy MCP plugged.in hoạt động như cầu nối giữa các máy khách MCP và nhiều máy chủ MCP cơ bản:

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

🔄 Quy trình làm việc

  1. Cấu hình: Proxy lấy cấu hình máy chủ từ Ứng dụng plugged.in
  2. Khám phá thông minh (pluggedin_discover_tools):
    • Kiểm tra bộ nhớ đệm: Trước tiên kiểm tra dữ liệu đã lưu trong bộ nhớ đệm (< 1 giây)
    • Phản hồi tức thì: Trả về công cụ tĩnh + công cụ động đã lưu ngay lập tức
    • Làm mới nền: Đối với force_refresh=true, chạy khám phá trong nền trong khi hiển thị các công cụ hiện tại
    • Khám phá mới: Chỉ chạy khám phá đầy đủ nếu không có dữ liệu đã lưu trong bộ nhớ đệm
  3. Liệt kê khả năng: Proxy lấy các khả năng đã khám phá từ API của Ứng dụng plugged.in
    • tools/list: Lấy từ /api/tools (bao gồm công cụ tĩnh + động)
    • resources/list: Lấy từ /api/resources
    • resource-templates/list: Lấy từ /api/resource-templates
    • prompts/list: Lấy từ /api/prompts/api/custom-instructions, hợp nhất kết quả
  4. Phân giải khả năng: Proxy phân giải khả năng đến máy chủ đích
    • tools/call: Phân tích tiền tố từ tên công cụ, tra cứu máy chủ trong bản đồ nội bộ
    • resources/read: Gọi /api/resolve/resource?uri=... để lấy chi tiết máy chủ
    • prompts/get: Kiểm tra tiền tố hướng dẫn tùy chỉnh hoặc gọi /api/resolve/prompt?name=...
  5. Định tuyến yêu cầu: Yêu cầu được định tuyến đến máy chủ MCP cơ bản thích hợp
  6. Xử lý phản hồi: Phản hồi từ các máy chủ cơ bản được trả về cho máy khách

🔒 Tính năng bảo mật

Máy chủ Proxy MCP plugged.in triển khai các biện pháp bảo mật toàn diện để bảo vệ hệ thống và dữ liệu của bạn:

Xác thực đầu vào & Làm sạch

  • Ngăn chặn chèn lệnh: Tất cả các lệnh và đối số được xác thực dựa trên danh sách cho phép trước khi thực thi
  • Bảo mật biến môi trường: Phân tích cú pháp an toàn các tệp .env với xử lý đúng cách dấu ngoặc kép và giá trị nhiều dòng
  • Xác thực mã thông báo: Mẫu regex mạnh cho khóa API và mã thông báo xác thực (32-64 ký tự hex)

Bảo mật mạng

  • Bảo vệ SSRF: Xác thực URL chặn truy cập vào:
    • Địa chỉ localhost và loopback (127.0.0.1, ::1)
    • Dải IP riêng (10.x, 172.16-31.x, 192.168.x)
    • Địa chỉ liên kết cục bộ (169.254.x)
    • Dải multicast và dành riêng
    • Cổng dịch vụ nội bộ phổ biến (SSH, cơ sở dữ liệu, v.v.)
  • Xác thực tiêu đề: Bảo vệ chống chèn tiêu đề với:
    • Chặn tiêu đề nguy hiểm
    • Xác thực tên tiêu đề tuân thủ RFC 7230
    • Phát hiện ký tự điều khiển
    • Giới hạn kích thước tiêu đề (tối đa 8KB)
  • Giới hạn tốc độ:
    • Gọi công cụ: 60 yêu cầu mỗi phút
    • Gọi API: 100 yêu cầu mỗi phút
  • Làm sạch lỗi: Ngăn chặn tiết lộ thông tin bằng cách làm sạch thông báo lỗi

Bảo mật tiến trình

  • Thực thi lệnh an toàn: Sử dụng execFile() thay vì exec() để ngăn chặn chèn shell
  • Danh sách cho phép lệnh: Chỉ cho phép thực thi:
    • node, npx - Lệnh Node.js
    • python, python3 - Lệnh Python
    • uv, uvx, uvenv - Công cụ UV Python
  • Làm sạch đối số: Loại bỏ ký tự meta shell và ký tự điều khiển khỏi tất cả đối số
  • Xác thực biến môi trường: Chỉ cho phép khóa chữ và số có dấu gạch dưới

Bảo mật HTTP có thể truyền trực tuyến

  • Xác thực lười: Khám phá công cụ không yêu cầu xác thực, cải thiện khả năng tương thích
  • Bảo mật phiên: Tạo ID phiên an toàn bằng mật mã
  • Bảo vệ CORS: Tiêu đề CORS có thể cấu hình cho truy cập web
  • Giới hạn kích thước yêu cầu: Ngăn chặn DoS thông qua tải trọng lớn

Tiện ích bảo mật

Mô-đun security-utils.ts chuyên dụng cung cấp:

  • Xác thực mã thông báo Bearer
  • Xác thực URL với bảo vệ SSRF
  • Làm sạch đối số lệnh
  • Xác thực biến môi trường
  • Triển khai giới hạn tốc độ
  • Làm sạch thông báo lỗi

Để biết chi tiết triển khai bảo mật, hãy xem SECURITY.md.

🧩 Tích hợp với Ứng dụng plugged.in

Máy chủ Proxy MCP plugged.in được thiết kế để hoạt động liền mạch với Ứng dụng plugged.in, cung cấp:

  • Giao diện dựa trên web để quản lý cấu hình máy chủ MCP
  • Khám phá khả năng tập trung (Công cụ, Tài nguyên, Mẫu, Lời nhắc)
  • Thư viện tài liệu RAG v2: Tải lên tài liệu và kích hoạt nội dung do AI tạo với ghi nhận đầy đủ
  • Quản lý hướng dẫn tùy chỉnh
  • Hỗ trợ nhiều không gian làm việc cho các bộ cấu hình khác nhau
  • Sân chơi tương tác để kiểm tra công cụ MCP với bất kỳ mô hình AI nào
  • Xác thực người dùng và quản lý khóa API
  • Trao đổi tài liệu AI: Tạo, tìm kiếm và quản lý tài liệu với theo dõi ghi nhận mô hình

📚 Tài nguyên liên quan

🤝 Đóng góp

Hoan nghênh đóng góp! Vui lòng gửi Yêu cầu kéo.

📝 Cập nhật gần đây

Phiên bản 1.9.0 (Tháng 9 năm 2025) - Cải tiến bảo mật

🔒 Làm sạch HTML nâng cao

  • Làm sạch tiêu chuẩn ngành: Thay thế làm sạch HTML dựa trên regex tùy chỉnh bằng thư viện sanitize-html
  • Ngăn chặn XSS: Bảo vệ toàn diện chống lại các cuộc tấn công kịch bản chéo trang
  • Bảo mật thuộc tính HTML: Làm sạch nâng cao cho ngữ cảnh thuộc tính HTML (dấu ngoặc kép, dấu và)
  • Chèn chuỗi định dạng: Đã sửa lỗ hổng chèn chuỗi định dạng trong ghi nhật ký
  • Kiểm tra bảo mật: Phạm vi kiểm tra toàn diện cho tất cả các chức năng làm sạch

🛡️ Cải tiến bảo mật

  • Tuân thủ CodeQL: Đã giải quyết tất cả các lỗ hổng bảo mật được xác định bởi phân tích GitHub CodeQL
  • Xác thực đầu vào: Tăng cường xác thực và làm sạch đầu vào trên tất cả các chức năng
  • Cập nhật phụ thuộc: Đã thêm sanitize-html để lọc nội dung HTML mạnh mẽ
  • Phạm vi kiểm tra: Bộ kiểm tra bảo mật nâng cao với xác minh ngăn chặn tấn công XSS

Phiên bản 1.5.0 (Tháng 1 năm 2025) - RAG v2

🤖 Trao đổi tài liệu AI

  • Tài liệu do AI tạo: Máy chủ MCP giờ đây có thể tạo tài liệu trong thư viện của bạn với ghi nhận AI đầy đủ
  • Theo dõi ghi nhận mô hình: Lịch sử đầy đủ về mô hình AI nào đã tạo hoặc cập nhật mỗi tài liệu
  • Tìm kiếm tài liệu nâng cao: Lọc theo mô hình AI, nhà cung cấp, ngày, thẻ và loại nguồn
  • Phiên bản tài liệu: Theo dõi thay đổi và duy trì lịch sử phiên bản cho nội dung do AI tạo
  • Hỗ trợ đa nguồn: Tài liệu từ tải lên, tạo bởi AI hoặc tích hợp API

🔍 Khả năng RAG nâng cao

  • Tìm kiếm ngữ nghĩa: Cải thiện điểm liên quan với tìm kiếm toàn văn PostgreSQL
  • Lọc thông minh: Lọc kết quả theo khả năng hiển thị, ghi nhận mô hình và nguồn tài liệu
  • Tạo đoạn trích: Trích xuất đoạn trích tự động với đánh dấu từ khóa
  • Tối ưu hóa hiệu suất: Truy vấn nhanh hơn với lập chỉ mục tối ưu

Phiên bản 1.2.0 (Tháng 1 năm 2025)

🔒 Cải tiến bảo mật

  • Xác thực URL: Bảo vệ SSRF toàn diện chặn IP riêng, localhost và cổng nguy hiểm
  • Danh sách cho phép lệnh: Chỉ các lệnh được phê duyệt (node, npx, python, v.v.) mới có thể được thực thi
  • Làm sạch tiêu đề: Bảo vệ chống lại các cuộc tấn công chèn tiêu đề
  • Xác thực lười: Cải thiện khả năng tương thích Smithery với khám phá công cụ không cần xác thực

🚀 Cải tiến hiệu suất

  • Bản dựng Docker tối ưu: Bản dựng nhiều giai đoạn cho dấu chân container tối thiểu
  • Chỉ phụ thuộc sản xuất: Tệp kiểm tra và phụ thuộc phát triển bị loại trừ khỏi hình ảnh Docker
  • Hiệu quả tài nguyên: Được thiết kế để triển khai trong môi trường hạn chế tài nguyên

🔧 Cải tiến kỹ thuật

  • Xử lý lỗi nâng cao trong truyền tải HTTP có thể truyền trực tuyến
  • Dọn dẹp phiên và quản lý bộ nhớ tốt hơn
  • Cải thiện kiểu TypeScript và tổ chức mã

Phiên bản 1.1.0 (Tháng 12 năm 2024)

🚀 Tính năng mới

  • Hỗ trợ HTTP có thể truyền trực tuyến: Kết nối đến máy chủ MCP hạ nguồn bằng truyền tải HTTP có thể truyền trực tuyến hiện đại
  • Chế độ máy chủ HTTP: Chạy proxy như một máy chủ HTTP để truy cập dựa trên web
  • Quản lý phiên linh hoạt: Chọn giữa chế độ không trạng thái hoặc có trạng thái
  • Tùy chọn xác thực: Xác thực mã thông báo Bearer tùy chọn cho điểm cuối HTTP
  • Giám sát sức khỏe: Điểm cuối /health để giám sát dịch vụ

🔧 Cải tiến kỹ thuật

  • Cập nhật SDK MCP lên v1.13.1 để hỗ trợ giao thức mới nhất
  • Thêm tích hợp Express.js cho chức năng máy chủ HTTP
  • Cải thiện kiểu TypeScript cho trải nghiệm nhà phát triển tốt hơn

Phiên bản 1.0.0 (Tháng 6 năm 2025)

🎯 Tính năng chính

  • Hệ thống thông báo thời gian thực: Theo dõi tất cả hoạt động MCP với hỗ trợ thông báo toàn diện
  • Tích hợp RAG: Hỗ trợ truy vấn nâng cao tài liệu thông qua Ứng dụng plugged.in
  • Tập lệnh kiểm tra: Công cụ kiểm tra tự động mới để gỡ lỗi và phát triển
  • Giám sát sức khỏe: Điểm cuối ping tích hợp để giám sát kết nối

🔒 Cải tiến bảo mật

  • Xác thực đầu vào: Xác thực và làm sạch tiêu chuẩn ngành cho tất cả đầu vào
  • Bảo mật URL: Xác thực URL nâng cao với bảo vệ SSRF
  • Bảo mật môi trường: Phân tích cú pháp an toàn biến môi trường với dotenv
  • Làm sạch lỗi: Ngăn chặn tiết lộ thông tin trong phản hồi lỗi

🐛 Sửa lỗi

  • Đã sửa can thiệp giao thức JSON-RPC (tách stdout vs stderr)
  • Đã giải quyết xác thực URL localhost cho môi trường phát triển
  • Đã sửa xử lý khóa API trong tập lệnh kiểm tra
  • Cải thiện độ ổn định kết nối và quản lý bộ nhớ

🔧 Công cụ nhà phát triển

  • Tập lệnh kiểm tra mới để kiểm tra tự động
  • Cải thiện thông báo lỗi và khả năng gỡ lỗi
  • Ghi nhật ký có cấu trúc với sử dụng stderr đúng cách
  • Cải thiện an toàn kiểu TypeScript

Xem Ghi chú phát hành để biết chi tiết đầy đủ.

🧪 Kiểm tra và Phát triển

Phát triển cục bộ

Các bài kiểm tra được bao gồm cho mục đích phát triển nhưng bị loại trừ khỏi bản dựng Docker để giảm thiểu dấu chân container.

# 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

Bản dựng Docker nhẹ

Hình ảnh Docker được tối ưu hóa cho dấu chân tối thiểu:

  • Quy trình xây dựng nhiều giai đoạn
  • Chỉ phụ thuộc sản xuất trong hình ảnh cuối cùng
  • Tệp kiểm tra và phụ thuộc phát triển bị loại trừ
  • Tối ưu hóa cho môi trường hạn chế tài nguyên
# Build optimized Docker image
docker build -t pluggedin-mcp .

# Check image size
docker images pluggedin-mcp

📄 Giấy phép

Dự án này được cấp phép theo Giấy phép MIT - xem tệp LICENSE để biết chi tiết.

🙏 Lời cảm ơn