Open Banking MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Open Banking MCP Serverlist my bank accounts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Open Banking MCP Server
A Model Context Protocol (MCP) server for Open Banking integration with TrueLayer API.
π Quick Start
1. Setup Credentials
Copy your real credentials to mcp.local.json (kept out of version control) or export them as environment variables before running the server. The committed mcp.json intentionally keeps placeholder values so no secrets are stored in the repo:
{
"mcpServers": {
"openbanking-mcp": {
"command": "py",
"args": ["server.py"],
"cwd": "C:\\1 Projects\\Cursor Projects\\GPT Experimentation\\OPEN BANKING MCP BUISNESS\\openbankingMCP",
"env": {
"TRUELAYER_CLIENT_ID": "your-real-client-id",
"TRUELAYER_CLIENT_SECRET": "your-real-client-secret"
}
}
}
}Alternatively, set the variables directly in your shell or process manager (example shown for POSIX shells):
export TRUELAYER_CLIENT_ID="your-real-client-id"
export TRUELAYER_CLIENT_SECRET="your-real-client-secret"2. Install Dependencies
# No additional dependencies required - uses Python standard library3. Test the Server
# Test minimal server
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | py minimal_mcp.py
# Test full server
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | py server.py4. Configure Cursor
Use mcp.local.json for your local Cursor configuration (contains real credentials).
Related MCP server: Sophtron ChatGPT Bank Connection MCP Server
π οΈ Available Tools
get_accounts: List all bank accountsget_transactions: Get transaction history for a specific account and date range
π Security
Real credentials are stored in
mcp.local.json(gitignored)Placeholder credentials in
mcp.jsonfor version controlNever commit real API keys or secrets
π Debugging
If MCP tools don't appear in Cursor:
Check Cursor Developer Console (
Ctrl+Shift+I)Look for startup messages:
π OpenBanking MCP server starting...Verify Python path and working directory in MCP config
Test server manually outside Cursor first
Available Tools
9 toolscomplete_code_exchangeB
Complete PKCE OAuth authorization code exchange with state validation.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The authorization code from OAuth callback | |
| state | Yes | The state parameter from OAuth callback |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It discloses that state validation occurs, which is a useful trait, but it does not mention side effects (e.g., token storage), security considerations, potential errors (e.g., state mismatch), or whether the operation is reversible. This is a notable gap for an OAuth exchange tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that wastes no words. It front-loads the main verb and resource, and includes the crucial qualifier 'with state validation.' It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple two-parameter tool, and the presence of an output schema reduces the need to explain return values. However, given it is part of an OAuth flow with sibling tools like 'exchange_code' and 'create_data_auth_link', the description lacks context about where this step fits in the overall process. No annotations further limit its completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, providing the baseline of 3. The description adds value by specifying that the state parameter is validated, which goes beyond the schema's simple 'The state parameter from OAuth callback.' It also frames the code within the PKCE context, enriching the parameter's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Complete PKCE OAuth authorization code exchange with state validation.' It specifies the resource (authorization code exchange) and adds the key qualifier of state validation, making the purpose specific. However, it does not differentiate from the sibling tool 'exchange_code', which could lead to ambiguity about which tool to invoke.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as needing a previously created data auth link, or exclusions for when not to use it. The description implies it is used after an OAuth callback, but it does not explicitly state this or distinguish it from 'exchange_code'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_data_auth_linkB
Create a TrueLayer OAuth authorization URL for data access.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says the tool creates a URL, but doesn't disclose side effects, prerequisites (e.g., client credentials), whether the operation is safe/read-only, or any other behavioral traits. This is a minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action. It contains no unnecessary words and fully communicates the core operation in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and an output schema exists, the description doesn't need to explain return values. However, it lacks context about the OAuth flow, relationship to sibling tools (e.g., exchange_code), and when this should be invoked. This leaves it adequate but with clear gaps for understanding the full usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty (100% coverage by virtue of no params). Per instructions, the baseline is 4 for 0 params. The description adds no parameter-specific details because none exist, but it doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and the resource (TrueLayer OAuth authorization URL) with context of data access. It distinguishes from sibling tools like exchange_code and complete_code_exchange by focusing on URL creation, though it doesn't explicitly place it in the OAuth flow order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is the first step in the OAuth flow or that exchange_code should be used after obtaining the URL. No exclusions or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exchange_codeA
Exchange OAuth authorization code for access and refresh tokens (legacy alias).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The authorization code from OAuth callback |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly states the core exchange behavior and the legacy alias status, which adds some transparency. However, it does not disclose potential side effects, error conditions, or deprecation details beyond the term 'legacy'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the action and target. There is no filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and an output schema, the description is mostly sufficient. However, the 'legacy alias' is vagueβit does not reference the canonical tool (likely 'complete_code_exchange' from the sibling list), leaving the broader context incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of 'OAuth authorization code' aligns with the 'code' parameter but adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('exchange') with a clear resource ('OAuth authorization code') and outcome ('for access and refresh tokens'). The phrase 'legacy alias' distinguishes it from likely non-legacy alternatives, making the tool's role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this is a legacy alias, suggesting there is a preferred alternative, but it does not explicitly name the alternative or state when to use this tool vs. another. This is implied usage guidance, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_hmrc_csvA
Export transactions as HMRC-ready CSV with categorization and summary.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date in YYYY-MM-DD format | |
| filename | No | Optional filename for the CSV export (defaults to hmrc_export_<account>_<from>_<to>.csv) | |
| account_id | Yes | The account ID to export transactions for | |
| start_date | Yes | Start date in YYYY-MM-DD format |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full transparency burden. It clarifies that the output is a CSV and mentions categorization/summary, but it does not disclose whether the operation is read-only, how the file is delivered (e.g., direct download or URL), or any side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action ('Export transactions') and includes key qualifiers. There is no redundancy or filler, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks crucial operational details such as the delivery mechanism of the CSV (e.g., file content vs. download URL), authentication requirements, or whether the export is scoped to the authenticated user. While an output schema exists (per context signals), its absence in the provided data means the agent cannot rely on it. Still, for a straightforward export tool, the description is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter coverage, with descriptions for account_id, start_date, end_date, and filename. The tool description adds no additional parameter semantics beyond referencing the CSV export, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Export') and resource ('transactions') with a clear output format ('HMRC-ready CSV'). It also mentions 'categorization and summary,' which adds specificity and distinguishes it from sibling tools like get_transactions/list_transactions that likely return JSON.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'HMRC-ready CSV' implies the tool is for generating tax-compliant exports, giving some context on when to use it. However, it does not explicitly compare against alternatives like get_transactions/list_transactions or state any exclusions, leaving the decision to the agent based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountsB
List all user bank accounts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'List all user bank accounts' without disclosing any behavioral details such as authentication requirements, consent dependencies, pagination, or error behavior. This is a significant gap for a tool that likely requires an authorized connection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, making it extremely succinct and front-loaded. It earns its place by stating the core function, though it lacks additional structure (e.g., usage examples) that could be helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is mostly complete, but it fails to differentiate from the sibling tool 'list_accounts'. There are no annotations to compensate for the missing usage context, and the tool appears to be one of two similar listing tools, so the description is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100% vacuously. Per the rubric, a 0-parameter tool gets a baseline of 4, and the description appropriately confirms the tool takes no filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all user bank accounts, using a specific verb and resource. However, it does not distinguish between this tool and the sibling tool 'list_accounts', which appears to have the same purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternative tools. The description is a single statement with no context, exclusions, or recommended use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionsB
Get transactions for a specific account within a date range.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| limit | No | Maximum number of transactions to return (default: 50) | |
| end_date | Yes | End date in YYYY-MM-DD format | |
| account_id | Yes | The account ID to fetch transactions for | |
| start_date | Yes | Start date in YYYY-MM-DD format | |
| include_raw | No | Include full transaction payloads instead of redacted data (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It fails to mention pagination behavior, default redaction of transaction data, or any other operational details beyond the core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is appropriately sized. It front-loads the primary action and scoping without wasting words, earning a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the input schema fully documents all parameters, the description is adequate for a simple retrieval tool. However, it lacks context about pagination or how this tool differs from siblings, making it slightly incomplete for a tool in a family of similar operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptive text for all six parameters. The description adds minimal value beyond the schema, only reinforcing the date-range concept already captured in the start_date and end_date parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves transactions for a specific account within a date range, using a specific verb and resource. It does not explicitly differentiate from the sibling 'list_transactions', which may perform a similar function, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_transactions or get_accounts. There are no conditions, prerequisites, or exclusions mentioned, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsA
Return 1-2 dummy accounts with proper schema validation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the accounts are dummy (fake) and that responses undergo schema validation. With no annotations, it partially carries the transparency burden, but it doesn't clarify side effects, authentication, or rate limits; however, for a zero-parameter read-like operation, this is somewhat adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant information. It front-loads the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description covers the essential purpose. It could benefit from stating the intended use case (e.g., testing/validation), but the term 'dummy' implies it adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema fully covers parameter semantics. The baseline for zero parameters is 4, and the description need not provide additional parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 1-2 dummy accounts, using a specific verb and resource. It distinguishes itself from get_accounts by noting these are dummy accounts, though it doesn't explicitly name alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context is provided. The description does not mention when to use this tool versus get_accounts or other siblings, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_consentsA
List all active user consents with their purposes and expiration dates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It adds value by specifying 'active' (filtering behavior) and the included fields, but it does not explicitly state read-only nature, authentication requirements, or any potential side effects. The verb 'list' implies safety, but the description could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema exists), the description is complete. It clearly states what is listed and the included fields. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds meaning about the returned data, though it does not need to explain parameters. The schema already has full coverage (no parameters to document).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List'), the resource ('all active user consents'), and the return fields ('purposes and expiration dates'). It is specific and easily distinguishable from sibling tools, which focus on accounts, transactions, or data links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use this tool when you need a list of active consents. It doesn't explicitly mention alternatives or exclusions, but the sibling tools are for different resources, making the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsD
Read sample CSV, normalize rows β Transaction[] with schema validation.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | End date in YYYY-MM-DD format | |
| account_id | Yes | The account ID to fetch transactions for | |
| start_date | Yes | Start date in YYYY-MM-DD format |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits fully. Instead, it introduces an incongruent behavior ('Read sample CSV') and fails to mention side effects, data source, or handling of validation failures. The description actively misleads about what the tool does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it is not appropriately concise because it omits essential information and substitutes misleading details. It is under-specified rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is completely inadequate. It fails to explain the actual operation, prerequisites, or relation to the input parameters, leaving the tool's behavior entirely ambiguous and inconsistent with its name and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema descriptions cover 100% of parameters, the tool description adds no value and actually contradicts the parameters by referencing CSV instead of account_id and date ranges. The agent cannot infer how parameters relate to the described CSV processing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Read sample CSV, normalize rows β Transaction[] with schema validation' does not match the tool name 'list_transactions' or its parameters (account_id, start_date, end_date). It describes a CSV processing operation instead of listing transactions, making it misleading about the tool's actual purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_transactions. It does not mention the intended use case (e.g., fetching transactions for an account within a date range), leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v0.1.0- First observed
complete_code_exchange - First observed
create_data_auth_link - First observed
exchange_code - First observed
export_hmrc_csv - First observed
get_accounts - First observed
get_transactions - First observed
list_accounts - First observed
list_consents - First observed
list_transactions
TDQS
exchange_code and complete_code_exchange overlap almost entirely (one is a legacy alias), and get_accounts/list_accounts plus get_transactions/list_transactions have similar names but differ in real vs. dummy behavior, creating confusion. An agent could easily select the wrong tool without careful description inspection.
The pattern is mostly verb_noun, but the use of both get_ and list_ prefixes for closely related actions, along with exchange_code versus complete_code_exchange, shows inconsistent verb choice. The 'legacy alias' note further muddies the name convention.
With 9 tools, the server is well-scoped for Open Banking operations covering auth, accounts, transactions, consents, and export. Each tool has a place, and the count is neither too small nor excessive.
The surface covers the core lifecycle: OAuth authorization, code exchange, account listing, transaction retrieval, CSV export, and consent listing. Notable gaps include consent revocation and token refresh, which are minor but would round out the workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read bank accounts, balances and transactions from 10,000+ European banks.
Read-only access to your bank, investment, and crypto accounts: balances, transactions, holdings.
- BankSyncOAuthio.banksync
Connect AI agents to bank accounts, transactions, balances, and investments.
Tools for your business banking with Rho, including accounts, transactions, and more
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Qonto's Business API for banking operations. Supports all API key-accessible endpoints for managing business banking transactions and account information.3MIT

Sophtron ChatGPT Bankofficial
AlicenseNot gradedqualityDmaintenanceEnables users to connect bank accounts within a chat session using Sophtron's UCW widget and query account information, owner details, and transactions persistently.234Apache 2.0- AlicenseBqualityBmaintenanceEnables read-only access to personal bank accounts via the TrueLayer API, allowing querying of accounts, balances, transactions, and generating financial analytics such as spending by category, subscriptions, and monthly summaries.9MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables interaction with Monzo bank accounts for balance checking, transaction management, pot operations, and reconciliation through natural language.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tkom04/openbankingMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server