OO

openbankproject/obp-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

3 stars 5 forks 质量 85 趋势 24AGPL-3.0

An MCP Server for the OBP API

概览

MCP Server for the Open Bank Project API - enables AI assistants to interact with 600+ OBP API endpoints via tag-based routing and glossary access. Top to bottom: users reach OBP through the OBP-Portal / API Explorer II frontend, which talks to Opey; Opey and external MCP clients (Claude Code, Claude Desktop, IDE agents) call OBP-MCP over MCP/HTTP; OBP-MCP makes the authenticated HTTPS calls to OBP-API, which in turn reaches core banking systems via its southbound connectors. OBP-OIDC issues and validates the tokens used at each hop. The numbered orange flow shows how user consent is obtained when a tool call requires a Consent-JWT: OBP-MCP returns consent_required, Opey surfaces it to the frontend as an SSE event, the frontend creates an implicit consent on OBP-API, and the tool call is retried with the Consent-JWT header.

README

以下为原文 README 节选,完整内容请查看原文。

OBP-MCP

MCP Server for the Open Bank Project API - enables AI assistants to interact with 600+ OBP API endpoints via tag-based routing and glossary access.

Architecture

Top to bottom: users reach OBP through the OBP-Portal / API Explorer II frontend, which talks to Opey; Opey and external MCP clients (Claude Code, Claude Desktop, IDE agents) call OBP-MCP over MCP/HTTP; OBP-MCP makes the authenticated HTTPS calls to OBP-API, which in turn reaches core banking systems via its southbound connectors. OBP-OIDC issues and validates the tokens used at each hop. The numbered orange flow shows how user consent is obtained when a tool call requires a Consent-JWT: OBP-MCP returns consent_required, Opey surfaces it to the frontend as an SSE event, the frontend creates an implicit consent on OBP-API, and the tool call is retried with the Consent-JWT header.

Opey also makes some direct (non-MCP) HTTP calls to OBP-API for its own infrastructure — session validation, admin operations, checkpoint persistence and health probes — covered by a separate detail diagram.

The editable masters live in Lucidchart: architecture overview · Opey direct-HTTP detail. To update the image: edit the Lucid doc, export the page as PNG, upload it to a GitHub issue comment, and replace the github.com/user-attachments/assets/... URL here (and in the Opey README and the OBP-API glossary, which embed the same image).

Quick Start

Install uv

MacOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Setup

  1. Create .env file:
OBP_BASE_URL=https://apisandbox.openbankproject.com
OBP_VERSION_TO_CALL=v7.0.0
API_VERSION_OF_INTEREST=v7.0.0
FASTMCP_HOST=127.0.0.1
FASTMCP_PORT=9100
  1. Generate indexes:
uv run python scripts/generate_endpoint_index.py
uv run python scripts/generate_glossary_index.py
  1. Run server:
uv sync
./run_server.sh

Server starts at http://0.0.0.0:9100

Authentication

Two separate settings control auth. Don’t mix them up — both can involve OAuth:

Setting Controls Values
AUTH_PROVIDER (with ENABLE_OAUTH) How a client connects to this MCP server bearer-only, obp-oidc, keycloak, or off
OBP_AUTHORIZATION_VIA How this server’s calls to OBP-API are authorized consent (Consent mode) or oauth (OAuth mode)
  • Consent mode — every call to OBP-API carries a Consent-JWT supplied by the client with the tool call. Any Authorization header from the client is dropped. Without a Consent-JWT, calls to non-public endpoints return consent_required. Use this for Opey.
在 GitHub 查看完整 README

安装

npx -y mcp-remote http://127.0.0.1:9100/mcp
新手?先看 mcpskill.org 教程 →

配置

"mcpServers": { "obp-mcp": { "type": "stdio", "command": "npx", "args": [ "-y", "mcp-remote", "http://127.0.0.1:9100/mcp" ], "env": {} } }