プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

OpenMetadata

作者:open-metadataバージョン 1.1.1i★ –iクラウドで動く
レジストリ名io.github.open-metadata/openmetadata-mcp

インストール

概要

作者による説明(英語の原文)

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

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: 検索・AIの記憶

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://{openmetadata_host}/mcp

アドレスには、あなたしか知らない {…} の部分(アカウントなど)があるので、コピーして書き換えてください。

ターミナルでこれを実行します

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

アドレスには、あなたしか知らない {…} の部分(アカウントなど)があるので、コピーして書き換えてください。

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

アドレスには、あなたしか知らない {…} の部分(アカウントなど)があるので、コピーして書き換えてください。

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://{openmetadata_host}/mcp

アドレスには、あなたしか知らない {…} の部分(アカウントなど)があるので、コピーして書き換えてください。

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント open-metadata で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    アドレスにあなた自身のアカウント情報が必要なため、代わりにチェックできません

  • – 対象外

    OAuthでサインイン

    アドレスにあなた自身のアカウント情報が必要なため、代わりにチェックできません

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

検索・AIの記憶のほかのサーバーとの比較i

  • このカテゴリのほかの7254件のうち0%よりスターが多い
  • このカテゴリのほかの7254件のうち40%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの7254件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

OpenMetadataは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.1.1)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Context7, Codebase Memory, Exa

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Context7

作者:upstash

Up-to-date docs for AI agents

パソコンでもクラウドでも★ 64,224MIT今日更新
インストール

Codebase Memory

作者:DeusData

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

パソコンで動く★ 48,148MIT20 日前更新
インストール

Exa

作者:exa-labs

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

クラウドで動く★ 5,213MIT先月更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。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

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く