MCP server for a banking chatbot focused on consortium products. Provides tools for searching consortium options, simulating payments, retrieving consortium documents, and searching public web information.
Server has 5 tools with complete descriptions and mostly clear naming. All tools are READ_ONLY and well-intentioned for a banking domain. However, critical gaps exist: (1) search_consortium_products lacks input schema validation, the enum constraint is documented in description but not enforced in code; (2) simulate_consortium_payment has 4 required numeric parameters with no min/max bounds or validation guidance; (3) search_consortium_documents and search_public_web accept free-form query strings with no injection guards or length limits; (4) no tool returns documented output schemas, responses are inferred from code but not formally specified; (5) error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Naming is solid (verb_noun pattern), descriptions are detailed (100-300 chars), but lack LLM-optimized structure (WHEN to use, WHAT it returns). No tool annotations (readOnlyHint present in metadata but not declared in schema). Overall: functional but not production-grade.
Check if the MCP server is running.
Search internal consortium documents, manuals, FAQs, and policies. Use this tool for questions about: - how consortiums work - contemplation rules - bid offers - cancellation - missed payments - default/inadimplência - risks - suitability guidelines - policy explanations - required documents after contemplation Do not use this tool for exact product options, fees, terms, minimum income, or credit ranges. For product data, use the PostgreSQL consortium database tool.
Search the bank's internal PostgreSQL database for active consortium options. Use this tool whenever the user asks about: - available consortium options - specific consortium plans - product listings - credit ranges - administration fees - reserve fund fees - maximum terms - minimum income - estimated monthly payment ranges The consortium_type argument is optional. Use None to list all active consortium options. Valid consortium_type values include: - automobile - motorcycle - real estate - services This tool is the source of truth for the bank's available consortium products.
Search the internet using Exa API. Use this only for external, public, current, or non-bank-internal information. Do not use this for internal consortium product names, fees, terms, or credit ranges. Internal product information must come from the PostgreSQL consortium tools. Examples of when to use this tool: - Current value of government specific rates, such as Selic, IPCA, CDI, etc. - Current value of the dollar, euro, or other currencies. - Current value of the stock market, such as Ibovespa, Nasdaq, S&P 500, etc. - Current news or events that may affect consortiums or financial markets. - Current price of a specific car model. For questions and search requests that are not pertinent to banking and consortiums politely refuse to answer and explain that you only have the ability to access the web to search for information and investigate when the it directly connects to the themes in question (banking, economy, consortiums).
No input validation or bounds on numeric parameters. simulate_consortium_payment accepts credit_amount, term_months, admin_fee_percentage, reserve_fund_percentage with no min/max constraints, allowing LLMs to pass absurd values (negative amounts, 0 months, 1000% fees).
Output schemas not documented. Tools return dict/list/str but LLMs cannot see field names, types, or structure. Forces LLMs to infer output shape, risking misuse of returned data in downstream calls.
No error handling or recovery guidance. Tools fail silently or return generic errors. LLMs cannot distinguish retryable (network timeout) from fatal (invalid consortium_type) errors, blocking agent recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Simulate an estimated consortium installment. Use this tool whenever the user asks about: - estimated monthly payment for a consortium - estimated installment for a consortium - estimated payment for a consortium Rules: - When using this tool utilize the data specified by the client or the standard data present in the database, utilized by the most fitting option. - Show the user the estimated monthly payment, total fees, and total cost of the consortium, and also specify what consortium option was selected or resembles the user's needs and specified information. - Explain the basics of the calculation so the user understands how the estimated monthly payment was derived. - Do not just return the estimated monthly payment and other numbers. Provide a detailed explanation of the scenario calculated and the factors that influence it. - Always model the calculations on the best available consortium option from the database, so use the search_consortium_db tool to check the available options. Format the answer in Markdown, including: - Selected consortium option: Automobile, Motorcycle, Real Estate, or Services - Credit amount - Term in months - Administrative fee - Reserve fund, if available - Estimated total cost - Estimated monthly payment - Short calculation formula Use clean Markdown. Do not output broken bold markers, missing spaces, or unformatted numbers. This is only an estimate. Real installments may vary.
Free-form query parameters lack injection guards. search_consortium_documents and search_public_web accept arbitrary strings; no length limits, no sanitization against prompt injection or SQL injection via RAG/vector store.
Enum constraint for consortium_type documented in description but not enforced in schema. Code accepts None but schema shows enum=['automobile','motorcycle','real_estate','services'], mismatch between spec and implementation.