Prefeitura SP Campinas: CPOM
Server Details
Prefeitura SP Campinas: CPOM, official-source lookup. Platform-hosted, pay per query with prepaid cr
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/pref_sp_campinas_cpom-mcp
- GitHub Stars
- 0
- Server Listing
- Prefeitura SP Campinas: CPOM
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/5 across 7 of 7 tools scored. Lowest: 3.1/5.
The tools are mostly distinct: authenticate/connect handle auth, marketplace handles discovery/execution, pref_sp_campinas_cpom_consultar is the domain-specific query, and report_bug/show_version/toolkit_info are utility. However, 'connect' and 'authenticate' overlap in purpose (both deal with connection/auth status), and 'marketplace' is a mega-tool that bundles many sub-actions (search, describe, invoke, install, subscribe, prompts) which could be confused with the dedicated 'pref_sp_campinas_cpom_consultar' for executing queries.
Naming is inconsistent: most tools use lowercase single words (authenticate, connect, marketplace, report_bug, show_version, toolkit_info), but the domain tool uses a long prefixed snake_case name (pref_sp_campinas_cpom_consultar). The pattern is not uniform, and the domain tool's name is verbose and doesn't follow the same verb_noun style as the others.
7 tools is a reasonable count for a server that combines platform management (auth, version, toolkit info) with a single domain-specific query tool. It's slightly heavy because 'marketplace' is a large multi-purpose tool, but the count itself is appropriate and not bloated.
The server's stated purpose is to provide access to Prefeitura SP Campinas CPOM data, but it only offers a single query tool (pref_sp_campinas_cpom_consultar). There are no tools for listing available data types, getting details, or managing queries. The platform tools (auth, marketplace, etc.) are complete for their role, but the domain surface is minimal, leaving gaps for users who need more than a single generic consultation.
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?
Annotations already mark the operation as idempotent and non-destructive; the description adds useful behavior context by explaining that config-based authentication is permanent/non-expiring while pasting a token is session-only, and that no arguments returns a login link. No contradiction with 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?
The description is compact: two information-dense sentences with clear 'Best' and 'Or' structuring. Every clause adds value, though the flow is slightly telegraphic and mixes config-level instructions with tool-call semantics in one block.
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 low-complexity auth tool with no output schema, the description covers the key behaviors: how to authenticate permanently, how to do session-only auth, and what happens when called with no args. It does not mention error cases or post-authentication state, but these are less critical here.
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 coverage is 0%, but the description compensates well for the single optional 'token' parameter by stating it accepts a JWT pasted by the user and that omitting it returns the login link. More details about JWT format or response behavior would help, but the core semantics are clearly conveyed.
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 an authentication/login flow for MCP.AI and IDE agents, with specific actions: log in, copy token, and either configure a header or pass a token. The two distinct usage modes (permanent config vs session-only paste) add scope and make the purpose unmistakable.
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?
It explicitly advises the preferred permanent approach (config header) and the session-only alternative via token paste or no-args link retrieval. It does not explicitly contrast with sibling tools like 'connect', but it gives clear when-to-use guidance for this tool's own workflows.
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, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral details, such as the conditional return when all providers are connected versus when credentials are missing, which goes 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?
The description is two concise sentences, front-loading the primary purpose and then providing conditional details. Every word earns its place with no redundancy.
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 status-check tool with no output schema, the description sufficiently explains the return values and conditional logic. It covers the key scenarios without needing more detail.
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 there is nothing to describe. The baseline of 4 is appropriate since no parameter documentation is 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 clearly states what it does: returns connection status and URLs. It specifies the exact return values (authenticated, pending, connect_url) and conditions, making it unambiguous and distinct from siblings by its focus on connection status.
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 it is used to check connection status but does not explicitly contrast with siblings like authenticate or toolkit_info. It lacks guidance on when to use this versus alternatives, though the purpose is clear enough to infer.
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?
Beyond the sparse annotations (readOnly false, openWorld true), the description discloses that invoke can succeed without installation, returns connect or checkout links for auth/billing, and that writes require owner/admin. This adds significant hidden behavior without contradicting any annotation.
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 dense paragraph, but every sentence adds value without fluff. It's efficiently front-loaded with the primary purpose, then flows logically through the core flow, exceptions, and auxiliary features. Length is justified given the tool's multi-action nature.
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 covers the main workflow, differences between one-off and permanent usage, auth/billing behavior, permission requirements, and even mentions output artifacts like connect links and shareable prompt URLs. However, it lacks explicit details on error handling, rate limits, or the exact return format of each action, which would enhance completeness given the absence of an output 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?
With schema coverage at 0%, the description fails to compensate by explaining parameter meanings. Although it names actions like `action=search` and mentions `tool_id`, it never details the semantics of `query`, `arguments`, `conversation`, `prompt_vars`, etc., leaving users to infer from property names alone.
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, enumerating its core capabilities across cataloging, discovery, execution, and billing. It distinguishes itself from siblings by explicitly naming its comprehensive scope, from search to prompt library, and states the primary flow of search/describe/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?
The description provides explicit usage guidance, contrasting `invoke` for one-off runs against `install` for permanent toolkit inclusion, and names alternatives like `report_bug` and `request_mcp`. It also flags permission requirements for write operations, giving clear when-to and when-not-to scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pref_sp_campinas_cpom_consultarARead-onlyIdempotentInspect
Prefeitura SP Campinas: CPOM, 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 |
|---|---|---|---|
| cnpj | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: payment per query, no platform credentials, data is not confidential, and the client is the data controller under LGPD. These align with the readOnlyHint and idempotentHint annotations and provide valuable context for invocation and compliance.
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 compact and front-loaded with the purpose, flowing logically through operational details. It covers essential aspects without redundancy, though the LGPD statement could be seen as extraneous but is relevant for legal context.
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 a simple single-parameter input and lacks an output schema. The description explains the source, payment, and legal aspects but does not specify the structure or content of the response. For a straightforward query tool, this may be sufficient, but it leaves some ambiguity about expected results without an output 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?
The schema defines a single 'cnpj' parameter with no description. The description does not elaborate on the parameter format or requirements, but the tool name and context make it clear that the query is based on CNPJ. Given the simplicity of a single well-known parameter, the lack of added semantic detail is acceptable.
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 queries official data from Campinas city hall's CPOM system, specifying the source and that it is a consultation. It distinguishes from generic sibling tools by its specific purpose, though it does not detail what information CPOM contains or returns.
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 that this is a paid, read-only query to official Brazilian sources and notes no platform credentials are needed. It does not explicitly state when to use this tool vs alternatives, but sibling tools are generic platform functions, so differentiation is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_bugBIdempotentInspect
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 declare idempotentHint=true and destructiveHint=false, indicating a safe, idempotent operation. The description adds that it expects a conversation array for reproduction, which is useful behavioral context. No contradiction. However, it doesn't disclose what happens after submission (e.g., acknowledgment, no side effects), though annotations cover safety.
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?
Two sentences, concise and front-loaded. The first sentence states the purpose, the second adds a key usage detail. No fluff.
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 and lack of output schema, the description covers the basic purpose but omits critical parameter details. With 3 params and zero schema coverage, the description should explain each parameter's meaning at least briefly. It also doesn't mention whether any authentication is required, though siblings include authenticate. Overall, it's minimally adequate but with notable gaps.
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 3 parameters with 0% description coverage. The description only mentions 'conversation array' among the three, leaving 'message' and 'context' undocumented. It doesn't clarify the format of 'conversation' (string containing JSON array) or the purpose of 'context'. With 0% coverage, the description must compensate but only partially does.
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 names the action (report) and the target (bug, missing feature, feedback), which is specific enough. It doesn't explicitly differentiate from siblings, but siblings are unrelated (authenticate, show_version, etc.), so 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?
It implies when to use it (when you identify a bug or missing feature or want to give feedback), but doesn't explicitly state when not to use it or alternatives. Given the sibling tools are unrelated, this is acceptable but could be stronger with a direct 'Use when...' statement.
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 the tool as read-only, idempotent, and non-destructive, covering the main safety concerns. The description adds the exact scope (platform and adapter versions) but doesn't disclose output format or whether connection/authentication is required, which could be valuable context for an agent.
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?
This is minimal and efficient: a single sentence that precisely describes the output. No fluff, no repetition of the tool name, and all words add value.
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 no-parameter read-only tool with clear annotations, the description is adequate. It could be more explicit about the exact version strings returned or potential error cases, but given the low complexity and full schema coverage, no significant gaps remain.
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 description needs to convey no input is required. The description implies this by simply stating 'Show the current...' without mentioning any arguments. Given the schema already has no properties, the baseline for zero-param tools is 4, and this description satisfies it.
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 MCP platform and adapter versions. This verb+resource mapping is specific and distinguishes it from siblings like toolkit_info, which likely provides broader tool information.
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 a common use case: checking environment versions for debugging or compatibility. Though it doesn't explicitly exclude alternatives, no other sibling tool appears focused solely on version info, so the purpose context is sufficient. It could be improved by noting when to use this instead of toolkit_info.
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 aligns with the annotations (read-only, idempotent, non-destructive) and transparently indicates that it returns a snapshot of the current state. It does not mention error behavior or edge cases, but for a simple read-only query, this is 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, well-structured sentence that efficiently enumerates the return contents. It is concise and to the point, with no unnecessary verbiage.
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 input schema, no output schema), the description is complete. It tells the user exactly what information is returned, which is sufficient for understanding the tool's purpose and usage.
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 zero properties, so there are no parameters to describe. The description fully covers the tool's behavior without needing parameter details. Schema coverage is trivially complete.
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: it returns the current toolkit state, listing specific aspects (installed MCPs, connection status, accounts, catalog tool counts). This is a precise, verb-driven description that distinguishes it from siblings like 'connect' or 'authenticate'.
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. While it is implicitly a read-only status query tool, there is no guidance on when to prefer it (e.g., before connecting) or when not to use it. This is a common gap.
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 gradedqualityCmaintenanceConsulta de dados oficiais da Prefeitura SP Mogi das Cruzes (CPOM) em fonte oficial, com ferramenta de leitura para agentes de IA via HTTP.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 gradedqualityCmaintenanceEnables querying SINTEGRA SP (São Paulo state tax registration) data from official sources via a single read-only tool, hosted as an MCP server with pay-per-use credits.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for consulting the official São Paulo City Hall post office box (Caixa Postal) information via a single read/write tool, using prepaid credits and no platform credentials.MIT
Your Connectors
Sign in to create a connector for this server.