ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Universal Connector MCP

โดย TeodorMCPรุ่น 0.2.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.TeodorMCP/universal-connector-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Security-first MCP server that connects any OpenAPI, GraphQL, gRPC or SOAP API to AI agents.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: GITHUB_TOKEN

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: UCMCP_ALLOWED_HOSTS, UCMCP_APIS_CONFIG, UCMCP_CACHE_TTL, UCMCP_BLOCK_PRIVATE_IPS, GITHUB_TOKEN

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "universal-connector": {
      "command": "uvx",
      "args": [
        "universal-connector-mcp"
      ],
      "env": {
        "UCMCP_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "UCMCP_APIS_CONFIG": "ใส่ค่าของคุณ",
        "UCMCP_CACHE_TTL": "ใส่ค่าของคุณ",
        "UCMCP_BLOCK_PRIVATE_IPS": "ใส่ค่าของคุณ",
        "GITHUB_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add universal-connector --env UCMCP_ALLOWED_HOSTS='ใส่ค่าของคุณ' --env UCMCP_APIS_CONFIG='ใส่ค่าของคุณ' --env UCMCP_CACHE_TTL='ใส่ค่าของคุณ' --env UCMCP_BLOCK_PRIVATE_IPS='ใส่ค่าของคุณ' --env GITHUB_TOKEN='ใส่ค่าของคุณ' -- uvx universal-connector-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "universal-connector": {
      "command": "uvx",
      "args": [
        "universal-connector-mcp"
      ],
      "env": {
        "UCMCP_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "UCMCP_APIS_CONFIG": "ใส่ค่าของคุณ",
        "UCMCP_CACHE_TTL": "ใส่ค่าของคุณ",
        "UCMCP_BLOCK_PRIVATE_IPS": "ใส่ค่าของคุณ",
        "GITHUB_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "universal-connector": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "universal-connector-mcp"
      ],
      "env": {
        "UCMCP_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "UCMCP_APIS_CONFIG": "ใส่ค่าของคุณ",
        "UCMCP_CACHE_TTL": "ใส่ค่าของคุณ",
        "UCMCP_BLOCK_PRIVATE_IPS": "ใส่ค่าของคุณ",
        "GITHUB_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • UCMCP_ALLOWED_HOSTS env
    Comma-separated extra hosts allowed for outbound calls (spec hosts are allowed automatically).
  • UCMCP_APIS_CONFIG env
    Path to a YAML file of APIs to preload at startup.
  • UCMCP_CACHE_TTL env
    TTL in seconds for caching read-only responses (default 60, 0 disables).
  • UCMCP_BLOCK_PRIVATE_IPS env
    Block outbound calls to private/loopback/link-local/cloud-metadata IPs (SSRF protection). Default true.
  • GITHUB_TOKEN ความลับ env
    Example credential convention: _TOKEN / _API_KEY are injected for the API loaded under that name.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub TeodorMCP ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32708 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 19% ของอีก 32708 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32708 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Universal Connector MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: GITHUB_TOKEN

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 4 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, OpenTakeoff

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวานซืน
ติดตั้ง

OpenTakeoff

โดย Kentucky-ai

Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Universal API Connector MCP

Any API. One MCP server.

Stop installing a new MCP server for every service: point this one at any OpenAPI/Swagger, GraphQL,

gRPC or SOAP spec - or pick one from the built-in catalog of 2500+ public APIs - and your AI agent

can call it. Securely, in fewer steps, with fewer tokens.

Installation · Meta-tools · API catalog · Examples · Configuration · Security

Why another one?

Most "universal API" MCP servers only speak REST/OpenAPI. This project is built around three differentiators:

  1. Truly universal - a normalized Operation model with pluggable spec adapters (OpenAPI, GraphQL, gRPC, SOAP). Tools and executors never care which protocol produced an operation.
  2. Security-first / local-first - a direct response to supply-chain attacks like the *AgentBaiting / FakeGit* campaign. Outbound requests are restricted to an allowlist, secrets never touch logs, responses are size-capped, and every call is audit-logged. No arbitrary code execution, no binary downloads, no telemetry.
  3. Built for context efficiency - field-level response filtering, chained and parallel execution, and response caching mean whole workflows fit in one tool call and responses stay small.

How it works

The agent explores APIs like a filesystem instead of loading hundreds of tools at once (which would blow up the context window on large APIs like Stripe). It searches for operations, inspects the ones it needs, then executes them.

Architecture (click to expand)

flowchart TD

Agent["AI Agent"] -->|"MCP stdio"| Server["FastMCP Server"] Server --> Tools["Meta-tools"] Tools --> Registry["Operation Registry (normalized)"] Adapters["Spec Adapters"] --> Registry Tools --> Guard["Security Guard"] Guard --> Executor["Protocol Executors"] Executor --> Auth["Auth Manager"] Executor --> UpstreamAPI["Upstream API"]

Meta-tools

ToolPurpose
search_catalogFind ready-to-load public APIs (curated list + APIs.guru directory, 2500+ specs)
load_apiRegister an API from a spec URL/file (protocol auto-detected)
list_apisList loaded APIs
search_operationsFuzzy-search operations across loaded APIs
get_operationFull parameter/response schema for one operation
executeCall an operation (auth + security guard applied); extract returns only the fields you ask for
execute_chainedRun a sequence of operations in one call, piping results between steps; nested lists run in parallel
execute_graphRun a dependency graph of operations; order is inferred from ${id.path} references and independent nodes run in parallel automatically
unload_apiRemove a loaded API
audit_logRecent outbound calls (method, host, path, status)

Why fewer steps (and fewer tokens)

Where a per-API MCP server needs one tool round-trip per call - each returning a full JSON payload into the agent's context - this server collapses whole workflows:

  • `extract` - execute(..., extract=["items.*.name", "total_count"]) returns just those fields instead of a multi-kilobyte response. * fans out over arrays.
  • Chaining - execute_chained pipes step results into later params via ${save_as.path} references: one tool call instead of N.
  • Parallel groups - a nested list of steps runs concurrently, so "query three APIs and combine" is still one call:
execute_chained(steps=[

[ {"operation_id": "github.repos_get", "params": {"owner": "o", "repo": "r"}, "save_as": "gh", "extract": ["stargazers_count"]}, {"operation_id": "open_meteo.get_v1_forecast", "params": {"latitude": 52.5, "longitude": 13.4}, "save_as": "weather", "extract": ["current_weather.temperature"]} ], {"operation_id": "github.issues_list_for_repo", "params": {"owner": "o", "repo": "r"}, "extract": ["*.title"]} ])

  • Response cache - successful GET/query results are cached for UCMCP_CACHE_TTL seconds (default 60), so repeated lookups are instant and free; pass fresh: true to bypass. Successful mutations invalidate that API's cached reads.

Built-in API catalog

You don't need to hunt for spec URLs. search_catalog searches two sources:

  1. A curated list of verified free/popular APIs: GitHub, GitLab, Stripe, OpenAI, Wikipedia, Open-Meteo (weather, no key), a countries GraphQL API, httpbin and the Swagger Petstore. Entries carry working spec URLs, base-URL overrides and auth hints (e.g. "optional GITHUB_TOKEN").
  2. The APIs.guru directory - 2500+ community-indexed OpenAPI specs (Google, AWS, Microsoft, Twilio, NASA, ...), fetched once per session and searched locally.
search_catalog(query="weather forecast")

-> [{"name": "open_meteo", "spec": "https://...forecast.yml", "base_url": "https://api.open-meteo.com", ...}] load_api(spec="https://...forecast.yml", name="open_meteo", base_url="https://api.open-meteo.com") execute(operation_id="open_meteo.get_v1_forecast", params={"latitude": 52.52, "longitude": 13.41, "hourly": "temperature_2m"})

The catalog is discovery-only: it returns spec URLs, never loads or executes anything itself, so the security guard still applies to everything you load from it.

Installation

The server runs in any MCP host via uvx - no manual install needed, the package is fetched from PyPI automatically (add [all] for GraphQL/gRPC/SOAP support):

{

"mcpServers": { "universal-connector": { "command": "uvx", "args": ["universal-connector-mcp"], "env": { "UCMCP_ALLOWED_HOSTS": "api.github.com" } } } }

From source (development): pip install -e ".[all,dev]" and use "command": "universal-connector-mcp" instead. Extras: graphql, grpc, soap, keyring, all, dev; the core install supports OpenAPI/REST only.

Cursor

One click via the badge above, or add the JSON block to .cursor/mcp.json in your project (shared with your team) or ~/.cursor/mcp.json (personal, all projects). See examples/mcp.json for a full config with credentials.

Claude Desktop

Add the same mcpServers block to claude_desktop_config.json (Settings > Developer > Edit Config).

Claude Code
claude mcp add universal-connector -- uvx universal-connector-mcp
VS Code (Copilot)

Add the server under "servers" in .vscode/mcp.json:

{

"servers": { "universal-connector": { "command": "uvx", "args": ["universal-connector-mcp"] } } }

Windsurf / Cline / others

All major MCP hosts accept the same mcpServers block shown above in their respective config files (~/.codeium/windsurf/mcp_config.json, Cline's MCP settings, etc.).

AI agents installing this server for a user: follow llms-install.md.

Preloading APIs

Point UCMCP_APIS_CONFIG at a YAML file to auto-load APIs at startup - see examples/apis.example.yaml.

Managing APIs from chat

You never edit config files to manage APIs - just tell your agent:

  • *"Connect the Stripe API"* - the agent finds it in the catalog and loads it.
  • *"What APIs are connected?"* - list_apis shows them.
  • *"Forget GitHub"* - unload_api removes it (and from the remembered state).

When an API needs credentials, load_api tells the agent exactly which environment variable to set (e.g. STRIPE_API_KEY), whether it is already configured, and the agent relays copy-pasteable instructions - you add the variable to the env block of your MCP config and restart. Secrets are never typed into the chat.

Session persistence

The server remembers which APIs you loaded (their spec locations - never credentials or response data) in UCMCP_STATE_FILE and restores them automatically on the next start, so the agent can pick up right where it left off. Set UCMCP_STATE_FILE=off to disable.

Supported protocols

ProtocolSpec sourceNotes
OpenAPI / SwaggerOpenAPI 3.x or Swagger 2.0 (JSON/YAML), URL/file/rawCore install. Local $ref resolution, all HTTP methods.
GraphQLIntrospection JSON or SDLpip install '.[graphql]'. Auto-generates selection sets; execute accepts a fields override.
gRPCServer reflection (grpc://host:port)pip install '.[grpc]'. Unary-unary methods; reflection must be enabled server-side.
SOAPWSDL (URL/file/raw)pip install '.[soap]'. One body object parameter per operation.

Each loaded operation gets an id namespaced as . (e.g. github.repos_get).

Example session

More walkthroughs (weather, GitHub with auth, GraphQL, parallel multi-API workflows, internal APIs): docs/EXAMPLES.md

search_catalog(query="github")

load_api(spec="https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json", name="github") search_operations(query="list repositories for user", api="github") get_operation(operation_id="github.repos_list_for_user") execute(operation_id="github.repos_list_for_user", params={"username": "torvalds"}, extract=["*.name", "*.stargazers_count"])

GraphQL with field selection:

load_api(spec="https://countries.trevorblades.com/", protocol="graphql", name="countries")

execute(operation_id="countries.country", params={"code": "US", "fields": "name capital currency"})

Chaining (feed one result into the next; wrap steps in a nested list to run them in parallel):

execute_chained(steps=[

{"operation_id": "github.repos_list_for_user", "params": {"username": "torvalds"}, "save_as": "repos"}, {"operation_id": "github.repos_get", "params": {"owner": "torvalds", "repo": "${repos.data.0.name}"}, "extract": ["description", "stargazers_count"]} ])

Configuration

All settings are environment variables prefixed with UCMCP_:

VariableDefaultDescription
UCMCP_ALLOWED_HOSTS(empty)Comma-separated extra hosts allowed for outbound calls. Prefix with . for suffix matches.

| UCMCP_DENIED_HOSTS | (

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx