Prefeitura MG Belo Horizonte: IPTU (Emissão Guia)
Server Details
Prefeitura MG Belo Horizonte: IPTU (Issuance Guia), official-source lookup. Platform-hosted, pay per
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/pref_mg_belo_horizonte_iptu-mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 7 of 7 tools scored. Lowest: 3.3/5.
Each tool has a distinct purpose, but authenticate and connect overlap somewhat around authentication and connection status. The domain-specific IPTU tool is clearly separated from platform-level tools.
Naming is inconsistent: bare verbs (authenticate, connect), nouns (marketplace, toolkit_info), verb_noun (report_bug, show_version), and one long odd snake_case name pref_mg_belo_horizonte_iptu_consultar that mixes a domain prefix with the action at the end.
While 7 tools is not excessive, only one relates to the server's stated IPTU purpose; the other six are generic platform/marketplace utilities that do not belong in a domain-specific server, creating a severe scope mismatch.
The server is named for IPTU guide issuance (Emissão Guia), but the only domain tool is pref_mg_belo_horizonte_iptu_consultar (consult). There is no emission, generation, or other IPTU lifecycle operation, leaving the core intended function unimplemented.
Available Tools
7 toolsauthenticateAIdempotentInspect
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header Authorization: Bearer <token> for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "" } after the user pastes, or with no args to get the link.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies side effects (opening a browser, storing session) but does not explicitly state them. It does not explain what happens if an invalid token is provided or how session-only login behaves internally. The permanent vs. session distinction is helpful, but potential mutations like overwriting sessions are left ambiguous, though the idempotentHint suggests consistent behavior.
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 concise but contains all necessary information in two sentences. It avoids verbosity while explaining the main use casesched and configuration option. It's readable and well-organized.
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 tool has only one optional parameter and no output schema. The description partially anticipates output by saying 'get the link' when called with no args, but it does not specify the response format or error scenarios. For a simple authentication tool, it lacks some clarity on what the user receives.
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 schema only defines 'token' with no description, but the tool description covers it: pasting a JWT token for session-only logincars. It clarifies that this parameter is optional ('call with { token }' or 'with no args'). The semantics are adequately explained despite the schema's lack of description.
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's purpose: authentication for IDE agents like Cursor, with explicit instructions for both permanent and session-based token usage. It explains the two modes (config header vs. passing token) and calls out the browser-based flow, leaving no ambiguity.
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 concrete usage steps: either add token to server config for permanent access or call with token for session-only login, or call with no args to obtain a link. It does not mention error handling or prerequisites beyond the user pasting a token, but the main flows are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectARead-onlyIdempotentInspect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds contextual behavior beyond annotations by explaining the meaning of response fields (authenticated, pending[], connect_url) and how they vary based on connection state, which is valuable for an agent to reason about the tool's output.
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 two sentences, front-loaded with the main purpose, then organized by conditional branches. It is concise with no redundant wording while covering the key behavioral outcomes.
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 status tool with no output schema, the description adequately explains the main return fields (authenticated, pending[], connect_url) and the two primary scenarios (all connected vs. missing credentials). It does not enumerate every possible edge case but is sufficient for the tool's simplicity.
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, and schema coverage is 100% trivially. According to the rubric, a baseline of 4 is appropriate when there are no parameters, and the description naturally needs to add no parameter-specific information.
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 'Returns connection status and URLs' with specific details about response fields (authenticated, pending[], connect_url) and conditional behavior. This distinguishes it from siblings like authenticate and show_version by specifying the exact resource and action.
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 for checking connection health through its conditional statements ('When all providers are connected... When credentials are missing...'), but it does not explicitly state when to use this over sibling tools or provide exclusions. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplaceAInspect
The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/ link that opens without login.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| action | No | search | |
| mcp_id | No | ||
| message | No | ||
| tool_id | No | ||
| arguments | No | {} | |
| immediate | No | ||
| tier_slug | No | ||
| prompt_body | No | ||
| prompt_slug | No | ||
| prompt_tool | No | ||
| prompt_vars | No | {} | |
| conversation | No | [] | |
| prompt_title | No | ||
| request_name | No | ||
| cancel_reason | No | ||
| cancel_comment | No | ||
| prompt_targets | No | ||
| report_context | No | ||
| prompt_category | No | ||
| request_details | No | ||
| prompt_description | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description surfaces critical behavioral details beyond the annotations: invoke runs tools even when not installed and does not bloat the tool list; credential/payment failures return connect/checkout links; search/describe flag installed status; and install/subscribe/cancel require elevated permissions. It adds substantial context beyond the sparse readOnly/destructive hints and does not contradict them.
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 dense but justified by the tool's complexity. It front-loads the core search/describe/invoke flow, then clarifies one-off vs permanent use, billing actions, and the prompt-library subdomain. Each sentence adds value, though the long single-paragraph format makes it harder to scan quickly.
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 complexity, the description is remarkably complete: it covers discovery, execution, installation semantics, auth requirements, billing flows, and the prompt library. It also states some return behaviors (profiles, links, flags). It does not document output shapes for every action, and there is no output schema, but the description is strong enough for a multi-action router.
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 0%, so the description must carry the parameter-meaning burden. It does explain the action enum in detail and mentions key parameters like mcp_id, tool_id, and arguments as part of the workflow. However, with 23 parameters, many remain undocumented (e.g., immediate, tier_slug, prompt_targets, request_details), and the description only partially compensates for the low schema coverage.
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 identifies the tool as the official mcp.ai marketplace and explains its role as both a catalog and execution engine for MCPs. It gives a specific workflow (search → describe → invoke), distinguishes itself from the prompt-library subset, and presents concrete capability queries it handles. It is both specific and comprehensive for a multi-action router tool.
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 rich usage guidance: it lays out the core flow, explicitly says to prefer invoke for one-off use and install only for permanent toolkit presence, lists what list_tools/subscribe/cancel/report_bug/request_mcp are for, and notes that writes require owner/admin. This is exactly the kind of when-to-use and when-not-to-use guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pref_mg_belo_horizonte_iptu_consultarBRead-onlyIdempotentInspect
Prefeitura MG Belo Horizonte: IPTU (Emissão Guia), consulta em fonte oficial. Hospedado pela plataforma, sem credenciais da plataforma, pague por consulta com crédito pré-pago. Consulta informação de fontes e órgãos oficiais brasileiros (a mesma disponível ao cidadão), não é dado sigiloso. O cliente é o controlador dos dados e responde pela finalidade legítima (LGPD).
| Name | Required | Description | Default |
|---|---|---|---|
| identificador | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations define read-only and idempotent behavior. The description adds meaningful operational details: requires prepaid credit, no platform credentials needed, data is not confidential, and the user is responsible for LGPD compliance. This goes beyond the annotations without contradicting them.
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, efficient paragraph that front-loads the purpose then provides operational and legal context. Every sentence carries value, though it could be better structured with separations, but the length is appropriate.
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 tool is simple (1 param, no output schema), but the description is missing critical parameter information and does not clarify what the consultation returns (e.g., the IPTU guide). It mentions 'Emissão Guia' but doesn't specify the output, leaving the agent without full understanding of the tool's behavior.
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 schema has one required parameter 'identificador' with 0% description coverage. The description completely fails to explain what this identifier refers to (e.g., IPTU registration number, property code), leaving the agent to guess. Since schema coverage is low, the description should compensate but does not.
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 performs a consultation ('consulta em fonte oficial') for IPTU (property tax) in Belo Horizonte, specifying the resource and location. It is distinct from sibling platform tools, though it doesn't explicitly state 'use this to retrieve IPTU data'—it's implied rather than overt.
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 context about payment (prepaid credit) and data responsibility, but does not explicitly say when to use this tool versus alternatives. The sibling tools are unrelated platform utilities, so no direct exclusions are needed, but the usage scenario is only implied through the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_bugAIdempotentInspect
Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| message | Yes | ||
| conversation | No | [] |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, but no readOnlyHint (false). The description adds that the tool is for feedback/bug reporting, which implies a side effect of sending data. It also mentions including the conversation for reproduction, which suggests the tool transmits data. No contradictions with annotations; the description adds context about expected input.
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 conveys the purpose and a key usage detail (including conversation). No fluff, front-loaded with the verb and resource. Excellent.
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 tool is relatively simple with 3 parameters, no output schema, and annotations covering idempotency. The description explains the purpose and one param, but does not explain the 'context' parameter or clarify the format of 'conversation' (though it says 'array'). For a feedback tool, the description is adequate but could benefit from clarifying what 'message' should contain and how the conversation is used. Overall, it's decent but not fully comprehensive.
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 0%, so the description must compensate. It explains the 'message' parameter indirectly by stating the purpose (sending feedback). It explicitly mentions 'conversation array' which is one of the parameters. The 'context' parameter is not mentioned, but with 3 simple parameters, the description provides enough semantic context for the main ones. Since coverage is 0%, this is a strong compensation.
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's purpose: report a bug, missing feature, or send feedback. It specifies the resource (bug report) and the action (report). It does not explicitly distinguish from siblings, but the sibling names (authenticate, connect, etc.) are clearly different domains, so the purpose is distinct enough.
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 gives a clear instruction to include the conversation array for reproduction, which indicates when to use it (provide context for reproduction). However, it does not explicitly state when not to use it or mention alternatives. Given the sibling tools are unrelated, the usage context is implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_versionARead-onlyIdempotentInspect
Show the current MCP platform and adapter versions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description doesn't need to restate safety. It adds context by specifying exactly what versions are shown (platform and adapter), which is useful beyond the annotations.
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?
One sentence, front-loaded, no waste. Perfectly concise.
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 simple info tool with no parameters and strong annotations (read-only, idempotent), the description fully covers the purpose. No output schema needed.
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?
Tool has zero parameters, so description doesn't need to explain parameter semantics. Baseline for 0 params is 4. The description correctly implies no inputs needed.
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 ('Show') and clearly identifies the resource ('current MCP platform and adapter versions'), which distinguishes it from sibling tools like toolkit_info. It is unambiguous and directly states the tool's function.
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 for retrieving version information but does not explicitly state when to use it versus alternative tools. Given it's a simple informational tool with no obvious alternatives among siblings, the guidance is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolkit_infoARead-onlyIdempotentInspect
Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond the annotations; it merely describes the output content. Since annotations already establish read-only, idempotent, and non-destructive traits, the description does not provide additional context such as side effects, limitations, or performance implications.
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, succinct sentence that efficiently lists the returned information. It avoids redundancy and is well-structured, making it easy to parse quickly.
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 absence of parameters and output schema, the description sufficiently covers the tool's functionality. It provides all necessary information about what the tool returns, making it complete for the given 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 no parameters, so the description does not need to explain parameter semantics. This aligns with the baseline expectation for zero-parameter tools; the description adds no extra meaning but also omits nothing necessary.
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 the current toolkit state and enumerates specific details (installed MCPs, connection status, accounts, catalog tool counts), making its purpose unambiguous. It distinguishes itself from sibling tools by focusing on state retrieval rather than actions like authentication or connection.
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 does not explicitly state when to use this tool versus alternatives; it only describes what it does. While the purpose implicitly suggests using it to inspect toolkit state, there is no direct guidance on scenarios where it would be preferred over other info tools like show_version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables users to query official SEFAZ DF IPTU (Distrito Federal property tax) information and issue tax payment guides directly from AI assistants like Claude and ChatGPT. A read-only MCP server with one tool, hosted for any MCP-enabled client, using a prepaid, pay-per-query model.MIT
- AlicenseNot gradedqualityCmaintenanceEnables consulting IPTU property tax issuance for Rio de Janeiro from official sources, read-only, with prepaid credits.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying official São Paulo city property registration data (Certidão de Dados Cadastrais do Imóvel) via a hosted MCP server, with read-only access and pay-per-use credits.MIT
- AlicenseNot gradedqualityCmaintenanceAllows AI assistants to query official IPTU (property tax) installment data from the Campinas city government, offering a read-only MCP tool with pay-per-use prepaid credits.MIT