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

OpenMetadata

โดย open-metadataรุ่น 1.1.1i★ –iรันบนคลาวด์
ชื่อใน registryio.github.open-metadata/openmetadata-mcp

ติดตั้ง

ภาพรวม

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

Official OpenMetadata MCP: 21 read and write tools for search, lineage, data quality, governance.

สามเสาของ PopNx MCP

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

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

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

  • การเชื่อมต่อ: รันบนคลาวด์
  • ช่องทาง (transport): Streamable HTTP
  • หมวด: ค้นข้อมูลและความจำของ AI

ติดตั้ง

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

ก่อนติดตั้ง

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

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย

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

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

ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:

  1. เปิด Settings → Connectors
  2. กด Add custom connector
  3. วางที่อยู่ด้านล่างแล้วกด Add
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Add2https://…3
https://{openmetadata_host}/mcp

ที่อยู่มีส่วน {…} ที่มีแต่คุณรู้ (เช่นบัญชีของคุณ) ให้คัดลอกไปแก้ก่อน

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

claude mcp add --transport http openmetadata 'https://{openmetadata_host}/mcp'

ที่อยู่มีส่วน {…} ที่มีแต่คุณรู้ (เช่นบัญชีของคุณ) ให้คัดลอกไปแก้ก่อน

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

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

{
  "mcpServers": {
    "openmetadata": {
      "url": "https://{openmetadata_host}/mcp"
    }
  }
}

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

ที่อยู่มีส่วน {…} ที่มีแต่คุณรู้ (เช่นบัญชีของคุณ) ให้คัดลอกไปแก้ก่อน

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

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

{
  "servers": {
    "openmetadata": {
      "type": "http",
      "url": "https://{openmetadata_host}/mcp"
    }
  }
}

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

ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:

  1. เปิด ChatGPT บนเว็บ → Settings → Connectors (Apps)
  2. กด Create หรือ Add (บางแพ็กเกจต้องเปิด Developer mode ใน Advanced ก่อน)
  3. วางที่อยู่ด้านล่าง ตั้งชื่อ แล้วบันทึก
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Create2https://…3
https://{openmetadata_host}/mcp

ที่อยู่มีส่วน {…} ที่มีแต่คุณรู้ (เช่นบัญชีของคุณ) ให้คัดลอกไปแก้ก่อน

ชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป

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

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

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

ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

  • – ไม่เกี่ยว

    endpoint ตอบ

    ต้องใส่ค่าของบัญชีคุณในที่อยู่ก่อน จึงตรวจแทนไม่ได้

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ต้องใส่ค่าของบัญชีคุณในที่อยู่ก่อน จึงตรวจแทนไม่ได้

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

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

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เทียบกับตัวอื่นในหมวด ค้นข้อมูลและความจำของ AIi

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

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

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

OpenMetadata ปลอดภัยไหม?

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

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

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

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

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

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

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

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

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

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

ในหมวดเดียวกันมี Context7, Codebase Memory, Exa

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

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

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

Context7

โดย upstash

ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว

บนเครื่องหรือคลาวด์★ 64,224MITอัปเดต วันนี้
ติดตั้ง

Codebase Memory

โดย DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

รันบนเครื่อง★ 48,148MITอัปเดต 20 วันที่ผ่านมา
ติดตั้ง

Exa

โดย exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

รันบนคลาวด์★ 5,213MITอัปเดต เดือนที่แล้ว
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

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

OpenMetadata MCP OAuth Implementation

OAuth 2.0 authentication server for Model Context Protocol (MCP) integration with OpenMetadata, enabling secure access to metadata through Claude Desktop and other MCP clients.

Overview

This module implements a complete OAuth 2.0 Authorization Code Flow with PKCE for MCP clients, enabling user authentication via OpenMetadata's existing SSO providers (Google, Okta, Azure AD, Auth0, AWS Cognito, Custom OIDC, LDAP, SAML) or Basic Auth. The implementation provides secure, standards-compliant access to OpenMetadata's metadata management capabilities through MCP tools.

Important: This is user SSO authentication for MCP clients, not connector-based OAuth for data sources. Users authenticate with their OpenMetadata credentials (SSO or username/password), and MCP tools execute with that user's permissions.

Features

OAuth 2.0 Implementation
  • Authorization Code Flow with PKCE - RFC 7636 compliant, preventing authorization code interception attacks
  • Refresh Token Rotation - Automatic token refresh with rotation for enhanced security
  • Token Encryption - Fernet symmetric encryption for tokens at rest
  • CSRF Protection - State parameter validation across the OAuth flow
  • Session Fixation Prevention - Session regeneration after successful authentication
Authentication Methods
  • SSO Integration - OAuth 2.0 integration with Google, Okta, Azure AD, Auth0, AWS Cognito, Custom OIDC, LDAP, and SAML providers via pac4j
  • Basic Auth - Username/password authentication with OpenMetadata credentials
  • User Impersonation - Support for impersonated user contexts in MCP tools
  • Auto-Detection - Automatically selects SSO or Basic Auth based on OpenMetadata configuration
Security Features
  • PKCE Validation - SHA-256 code challenge/verifier validation
  • Token Expiry Management - Access tokens last 10 minutes; refresh tokens last 30 days from sign-in, and rotating them does not extend that
  • Rate Limiting - Registration (10/hour per IP) and token (30/minute per IP) endpoint protection
  • Thread-Safe Concurrent Processing - ThreadLocal storage for request isolation
  • Audit Logging - OAuth operations logged via SLF4J (oauth_audit_log table available for future use)
  • Read-only Mode - Turn on Read-only Mode in the MCP Server app settings to expose only tools annotated readOnlyHint, for every user including admins. Writes are blocked at once; the tool list changes, and turning it off applies, after a restart. Through the API, send the full configuration: PUT /api/v1/system/mcp/config replaces every field.
  • Disabled Tools - Pick tools under Disabled Tools in the MCP Server app settings to turn them off for every user including admins. Calls are refused at once; the tool list changes, and enabling a tool again applies, after a restart. GET /api/v1/system/mcp/tools lists the tool names the server registered.
Database-Driven Configuration
  • Runtime Configuration - Update MCP settings without server restart via REST API
  • Cluster Synchronization - Database polling (10-second interval) ensures all cluster instances have consistent configuration
  • Configuration Change Listeners - Dynamic CORS origin updates when configuration changes
  • Persistent Storage - Configuration changes persist across server restarts (database-first, YAML fallback)
  • HTTP Timeout Configuration - Configurable connection and read timeouts for SSO provider metadata fetching
MCP Integration
  • Claude Desktop Support - First-class integration with Claude Desktop MCP client
  • OAuth Discovery Endpoints - Standard .well-known endpoints for client configuration
  • Dynamic Client Registration - RFC 7591 compliant client registration
  • JWKS Support - Public key endpoint for JWT validation

Architecture

Core Components

UserSSOOAuthProvider

  • Main OAuth provider implementing authorization code flow
  • Handles both Google SSO and Basic Auth flows
  • Token generation, validation, and refresh logic
  • PKCE challenge/verifier validation with timing-safe comparison

OAuthHttpStatelessServerTransportProvider

  • HTTP transport layer for OAuth endpoints
  • Routes authorization, token, and discovery requests
  • Servlet-based stateless request handling
  • Provider-aware OAuth scope configuration

SecurityConfigurationManager

  • Singleton manager for runtime security configuration (authentication, authorization, MCP settings)
  • Database-first configuration loading with YAML fallback
  • Configuration change listener pattern for reactive updates
  • Cluster-aware polling mechanism (10-second interval) to detect changes across instances
  • Rollback mechanism for failed configuration updates
  • Thread-safe synchronized getters for consistent configuration reads

OAuth Repositories

  • OAuthClientRepository - Client management and validation
  • OAuthAuthorizationCodeRepository - Authorization code CRUD operations
  • OAuthAccessTokenRepository - Access token lifecycle management
  • OAuthRefreshTokenRepository - Refresh token rotation and cleanup
  • McpPendingAuthRequestRepository - Database-backed OAuth state persistence
  • OAuthAuditLogRepository - Comprehensive audit trail
Database Schema

Five core OAuth tables with audit logging:

  • oauth_clients - Dynamically registered MCP clients via RFC 7591
  • oauth_authorization_codes - Short-lived codes (10 min TTL) with PKCE challenge
  • oauth_access_tokens - Not written today: access tokens are 10-minute JWTs returned to the client
  • oauth_refresh_tokens - Refresh tokens (30 days from sign-in) with automatic rotation that keeps that end
  • mcp_pending_auth_requests - OAuth state parameters for cross-domain redirects (10 min TTL)
  • oauth_audit_log - Comprehensive audit trail of all OAuth operations

Cleanup Job: OAuthTokenCleanupJob runs every 10 minutes to purge expired tokens and pending requests.

OAuth Flow

Authorization Code Flow with PKCE
┌─────────────┐                                                    ┌──────────────┐

│ Claude │ │ OpenMetadata │ │ Desktop │ │ MCP │ │ (MCP Client)│ │ Server │ └──────┬──────┘ └──────┬───────┘ │ │ │ 1. Generate PKCE code_verifier (random 43-128 chars) │ │ Calculate code_challenge = BASE64URL(SHA256(verifier)) │ │ │ │ 2. GET /api/v1/mcp/authorize │ │ ?client_id={registered_client_id} │ │ &redirect_uri=http://127.0.0.1:XXXXX/callback │ │ &code_challenge={challenge} │ │ &code_challenge_method=S256 │ │ &state={client_state} │ │─────────────────────────────────────────────────────────────────>│ │ │ │ 3. Store OAuth state in database: │ │ - client_id, redirect_uri │ │ - code_challenge, method │ │ - state, scopes, TTL (10 min) │ │ Generate authRequestId │ │ │ │ 4. 302 Redirect to Auth Page │ │ /api/v1/mcp/authorize?state=mcp:{authRequestId} │ │<─────────────────────────────────────────────────────────────────│ │ │ │ 5. User authenticates via: │ │ ┌──────────────────────────────────────┐ │ │ │ Option A: SSO Provider │ │ │ │ - Redirect to SSO provider: │ │ │ │ • Google OAuth │ │ │ │ • Okta │ │ │ │ • Azure AD │ │ │ │ • Auth0 │ │ │ │ • AWS Cognito │ │ │ │ • Custom OIDC │ │ │ │ • LDAP │ │ │ │ • SAML │ │ │ │ - User grants consent │ │ │ │ - SSO callback with ID token (pac4j)│ │ │ └──────────────────────────────────────┘ │ │ OR │ │ ┌─────────────────────────────┐ │ │ │ Option B: Basic Auth │ │ │ │ - Username/password form │ │ │ │ - Validate with │ │ │ │ OpenMetadata │ │ │ └─────────────────────────────┘ │ │ │ │ 6. Lookup OAuth state from DB using │ │ authRequestId from state parameter │ │ Generate authorization code │ │ Store code + code_challenge in DB │ │ │ │ 7. 302 Redirect with authorization code │ │ {redirect_uri}?code={auth_code}&state={client_state} │ │<─────────────────────────────────────────────────────────────────│ │ │ │ 8. POST /api/v1/mcp/token │ │ grant_type=authorization_code │ │ code={auth_code} │ │ code_verifier={verifier} │ │ client_id={registered_client_id} │ │ redirect_uri=http://127.0.0.1:XXXXX/callback │ │─────────────────────────────────────────────────────────────────>│ │ │ │ 9. PKCE Validation: │ │ Lookup code_challenge from DB │ │ Verify: BASE64URL(SHA256(verifier)) │ │ == code_challenge │ │ Delete authorization code (single-use)│ │ │ │ 10. 200 OK │ │ { │ │ "access_token": "eyJhbGc...", // JWT, 10 min TTL │ │ "refresh_token": "fernet_encrypted", // 30 days TTL │ │ "token_type": "Bearer", │ │ "expires_in": 600

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

ถาม PopNx