{"id":50193918,"url":"https://github.com/openbankproject/obp-mcp","last_synced_at":"2026-05-25T16:02:57.231Z","repository":{"id":325234193,"uuid":"1098281871","full_name":"OpenBankProject/OBP-MCP","owner":"OpenBankProject","description":"An MCP Server for the OBP API","archived":false,"fork":false,"pushed_at":"2026-05-22T07:07:42.000Z","size":1229,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-22T15:25:36.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenBankProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-11-17T13:46:13.000Z","updated_at":"2026-05-22T07:07:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/OpenBankProject/OBP-MCP","commit_stats":null,"previous_names":["openbankproject/obp-mcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenBankProject/OBP-MCP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-MCP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-MCP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-MCP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-MCP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenBankProject","download_url":"https://codeload.github.com/OpenBankProject/OBP-MCP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-MCP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33482411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-25T16:02:55.842Z","updated_at":"2026-05-25T16:02:57.225Z","avatar_url":"https://github.com/OpenBankProject.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OBP-MCP\n\nMCP Server for the Open Bank Project API - enables AI assistants to interact with 600+ OBP API endpoints via tag-based routing and glossary access.\n\n## Quick Start\n\n### Install uv\n\n**MacOS/Linux:**\n\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n### Setup\n\n1. Create `.env` file:\n\n```bash\nOBP_BASE_URL=https://apisandbox.openbankproject.com\nOBP_VERSION_TO_CALL=v7.0.0\nAPI_VERSION_OF_INTEREST=v7.0.0\nFASTMCP_HOST=127.0.0.1\nFASTMCP_PORT=9100\n```\n\n2. Generate indexes:\n\n```bash\nuv run python scripts/generate_endpoint_index.py\nuv run python scripts/generate_glossary_index.py\n```\n\n3. Run server:\n\n```bash\nuv sync\n./run_server.sh\n```\n\nServer starts at `http://0.0.0.0:9100`\n\n## Authentication\n\nOBP-MCP supports three authentication modes:\n\n| Mode            | Use Case                                       | `AUTH_PROVIDER` |\n| --------------- | ---------------------------------------------- | --------------- |\n| **bearer-only** | Internal agents (Opey), microservices          | `bearer-only`   |\n| **obp-oidc**    | External MCP clients (VS Code, Claude Desktop) | `obp-oidc`      |\n| **keycloak**    | External MCP clients with Keycloak             | `keycloak`      |\n\n### For Opey (Internal Agent)\n\nUse `bearer-only` authentication. This mode:\n\n- **Does NOT** expose OAuth discovery endpoints\n- Simply validates JWT tokens against OBP-OIDC's JWKS\n- Is designed for architectures where OAuth is handled externally (e.g., by a frontend portal)\n\n```bash\n# .env\nENABLE_OAUTH=\"true\"\nAUTH_PROVIDER=bearer-only\nOBP_OIDC_ISSUER_URL=http://localhost:9000/obp-oidc\n```\n\nYour agent passes the user's access token with each MCP request:\n\n```\nAuthorization: Bearer \u003cuser_access_token\u003e\n```\n\n### For External MCP Clients (VS Code, Claude Desktop, MCP Inspector)\n\nUse `obp-oidc` or `keycloak` authentication. These modes expose the full OAuth 2.1 discovery flow, allowing MCP clients to:\n\n- Discover authorization endpoints via `/.well-known/oauth-protected-resource`\n- Perform Dynamic Client Registration (RFC 7591)\n- Complete the OAuth authorization code flow with PKCE\n\n```bash\n# .env\nENABLE_OAUTH=\"true\"\nAUTH_PROVIDER=obp-oidc\nOBP_OIDC_ISSUER_URL=http://localhost:9000/obp-oidc\nBASE_URL=http://localhost:9100\n```\n\n### Disabling Authentication\n\nFor development or testing without authentication:\n\n```bash\nENABLE_OAUTH=\"false\"\n```\n\nfor more information about auth and how to configure your OIDC providers see the [docs](docs/AUTH_SETUP.md).\n\n## Testing with MCP Inspector\n\nRun the server normally then start the inspector with:\n\n```bash\nnpx @modelcontextprotocol/inspector \\\n```\n\nYou can then configure the connection to the server from there.\n\n## Client Integration\n\n### VS Code\n\nConfigure in the servers section of `~/.config/Code/User/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"obp-mcp\": {\n      \"url\": \"http://0.0.0.0:9100/mcp\",\n      \"type\": \"http\"\n    }\n  }\n}\n```\n\n### Zed\n\nConfigure in `~/.config/zed/settings.json`:\n\n```json\n{\n  \"context_servers\": {\n    \"obp-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"http://127.0.0.1:9100/mcp\"]\n    }\n  }\n}\n```\n\n### Claude (code)\n\nConfigure in ~/.claude.json. The relevant section is:\n\n```json\n\n  \"mcpServers\": {\n    \"obp-mcp\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-remote\",\n        \"http://127.0.0.1:9100/mcp\"\n      ],\n      \"env\": {}\n    }\n  }\n\n```\n\nThis is a global config that makes the obp-mcp server available to all projects. It connects to http://127.0.0.1:9100/mcp using mcp-remote.\n\n## Available Tools\n\n**Endpoint Tools:**\n\n- `list_endpoints_by_tag` - Filter 600+ endpoints by category\n- `get_endpoint_schema` - Fetch full OpenAPI schema\n- `call_obp_api` - Execute API requests\n\n**Glossary Tools:**\n\n- `list_glossary_terms` - Search 800+ OBP terms\n- `get_glossary_term` - Get full definitions\n\nSee [docs/HYBRID_ROUTING.md](docs/HYBRID_ROUTING.md) for details.\n\n## Appendix 1 - Opey setup\n\nTo set up with opey, use the following setup:\n\n```bash\n# .env\nENABLE_OAUTH=\"true\"\nAUTH_PROVIDER=bearer-only\nOBP_OIDC_ISSUER_URL=http://localhost:9000/obp-oidc\nOBP_AUTHORIZATION_VIA=\"consent\"\nOBP_OPEY_CONSUMER_KEY=\u003copey's consumer key (same as the OBP_CONSUMER_KEY in Opey)\u003e\n```\n\n\u003e [!IMPORTANT] `OBP_AUTHORIZATION_VIA` must be set to `oauth` or `consent`. Any other value (including unset) causes the server to refuse to start — unauthenticated OBP-API access is not supported.\n\n\u003e [!NOTE] You will not be able to use the MCP server, set up in this way, with any other MCP clients, unless they are capable of creating valid consents on the fly.\n\nIn Opey's `mcp_servers.json` (inside the servers array):\n```json\n{\n      \"name\": \"obp\",\n      \"url\": \"http://0.0.0.0:9100/mcp\",\n      \"transport\": \"streamable_http\",\n      \"forward_bearer_token\": true\n}\n```\n\n## License\n\nAGPLv3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbankproject%2Fobp-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenbankproject%2Fobp-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbankproject%2Fobp-mcp/lists"}