CPFL: Download + OCR
Server Details
CPFL: Download + OCR, official-source lookup. Platform-hosted, pay per query with prepaid credit.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/contas_cpfl_download_ocr-mcp
- GitHub Stars
- 0
- Server Listing
- CPFL: Download + OCR
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.4/5.
Tools have distinct purposes: authenticate handles login, connect checks connectivity, contas_cpfl_download_ocr_consultar handles the domain consult, marketplace manages MCP catalog, report_bug, show_version, toolkit_info each serve specific functions. Minor overlap exists between connect and toolkit_info in reporting status, but descriptions differentiate them clearly.
Naming is inconsistent: the domain tool uses snake_case (contas_cpfl_download_ocr_consultar) while all others use camelCase (authenticate, connect, marketplace, etc.). The mix of conventions and lack of a common verb_noun pattern makes the set feel chaotic.
Seven tools is within a normal range, but six are platform-level meta tools with only one domain-specific tool. This is slightly imbalanced for a server named 'CPFL: Download + OCR', but the count itself is reasonable for a management wrapper.
The server claims to handle CPFL download and OCR, yet only provides a single consult operation. There are no tools for downloading bills, performing OCR, or managing documents, leaving major gaps in the promised workflow. The domain-specific surface is severely underdeveloped.
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?
With annotations already covering idempotency and non-destructiveness, the description adds useful behavior: no args returns a link, passing a token creates a session-only login, and config-based tokens are permanent. It does not explain exact return values after token submission or error handling, but the key workflow is transparent.
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 and front-loaded with the tool's purpose, followed by actionable usage details. It is slightly wordy with phrases like 'MCP.AI for IDE agents (Cursor, etc.)', but every sentence contributes useful information and no content is wasted.
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 tool with one optional parameter and no output schema, the description covers the essential workflow: getting the login link, submitting a token, and the recommended permanent configuration approach. It could be slightly more explicit about what happens after a token is submitted, but overall it is sufficient for an agent to invoke the tool correctly.
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 an undocumented optional string 'token', so the description carries the full burden. It fully explains the parameter's meaning: omit it to receive the login link, or pass the JWT after the user pastes it for session-only authentication. This compensates completely for the 0% schema description 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 states this tool handles authentication for MCP.AI, with a specific login flow involving browser login and token exchange. It explicitly differentiates itself through token-based authentication and session vs. permanent configuration, which distinguishes it from siblings like 'connect'.
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 clearly explains when to use each invocation mode: no args to get the login link, token for session-only login, and config header for a permanent non-expiring connection. It provides clear context but does not explicitly compare this tool to alternative sibling tools or state when not to use it.
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 the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context about response states—authenticated with empty pending[] versus missing credentials with connect_url—enhancing what annotations alone provide.
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 primary purpose, and every sentence adds meaningful behavioral detail. No wasted words.
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 no-parameter status tool with strong annotations, the description sufficiently explains the key return states and URL outputs. No output schema is present, but the description covers the important response semantics.
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. There is no parameter information to document, and the description appropriately focuses on behavior rather than inputs.
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 connection status and URLs, with specific conditional outcomes (authenticated:true vs connect_url). This distinguishes it from sibling tools like authenticate, which performs an action rather than reporting 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 use when checking connection status, but it does not explicitly state when to use this tool versus alternatives like authenticate. It provides conditional behavior but no direct usage guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contas_cpfl_download_ocr_consultarBRead-onlyIdempotentInspect
CPFL: Download + OCR, 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 |
|---|---|---|---|
| Yes | |||
| senha | Yes | ||
| instalacao | No | ||
| unidade_consumidora | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful behavioral context about payment, lack of platform credentials, official-source nature, and LGPD responsibilities. No contradiction with annotations is present.
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 core purpose ('CPFL: Download + OCR, consulta em fonte oficial'). The additional legal and commercial statements are relevant but somewhat boilerplate; they do not make the description excessively long.
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 4 parameters, no output schema, and no parameter-level descriptions, the overall context is incomplete. It explains purpose, cost, and legal framing, but omits what credentials are required, what the optional parameters do, and what the tool returns. This leaves significant gaps for correct invocation.
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 by explaining the parameters. It does not address what 'email' and 'senha' refer to, nor the meaning or optionality of 'instalacao' and 'unidade_consumidora.' The mention of 'sem credenciais da plataforma' is tangentially relevant but does not clarify the actual input fields.
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's focus on CPFL bills via 'Download + OCR, consulta em fonte oficial,' naming a specific vendor and operation. It is distinguishable from the generic sibling tools like authenticate or marketplace, though it stops short of precisely stating the output or workflow.
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?
Provides practical usage context: the tool is hosted by the platform, requires no platform credentials, is paid per query with prepaid credit, and queries official Brazilian sources. It does not explicitly contrast with alternative tools or state when not to use it, but the context is clear enough for an agent to infer appropriate invocation.
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 discloses that writes require workspace owner/admin, that invoke returns connect or checkout links for auth/payment, and that invoke runs tools one-off without installing. Since annotations already indicate non-readOnly, this adds valuable side-effect and permission context without contradicting 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 a dense single paragraph, front-loaded with the core purpose and organized with arrows and semicolons. While lengthy, every sentence adds actionable information for a complex tool; it could benefit from bullet points but contains no filler or 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 14-action tool with no output schema, the description covers core flows, edge cases (not installed, credentials, empty wallet), permission requirements, and prompt library outputs (e.g., shareable mcp.ai/p/<slug> link). It gives enough context for an agent to handle the main scenarios, achieving strong completeness given the tool's complexity.
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 description explains the action enum and key parameters like mcp_id, tool_id, arguments, prompt_slug, and prompt_vars contextually. However, with 23 parameters and 0% schema coverage, many parameters (limit, query, immediate, tier_slug, cancel_reason, conversation, etc.) are left to inference, so the description only partially compensates for the lack of structured parameter docs.
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 it is both a catalog of MCPs/tools and the way to run them. It distinguishes its dual role (discovery and execution) and also covers the prompt library, making its purpose unambiguous and distinct from sibling 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?
The description gives explicit guidance: 'prefer invoke for a single/occasional use' vs. 'Use install only to make an MCP PERMANENT', and directs users to request_mcp when nothing fits. It also clarifies list_tools as what is callable right now, providing clear when-to-use context and alternatives.
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 already declare idempotentHint=true and readOnlyHint=false, so the description adds the context that the tool expects a conversation array for reproduction. It could disclose more about what happens after submission (e.g., where the report goes) but does provide a useful behavioral hint beyond 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 exactly two sentences: a clear statement of purpose followed by a concrete usage pointer. Every word earns its place with no fluff, making it front-loaded and easy to parse.
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 feedback tool with no output schema, the description is sufficiently complete: it covers the core action and the critical input behavior. It could mention that 'message' is required or clarify that 'context' is optional, but the tool's simplicity makes this less critical.
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%, so the description must compensate. It explicitly explains the 'conversation' parameter usage ('Include the conversation array with recent messages for reproduction'), but provides no guidance on 'message' (which is required) or 'context'. This is undercompensated for a low-coverage situation.
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 and resource: 'Report a bug, missing feature, or send feedback.' It clearly distinguishes from siblings like 'connect' or 'marketplace' by focusing on user-provided feedback and has no overlap with those 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?
The description clearly implies when to use it (when reporting issues or feedback) and provides a concrete usage hint about including the conversation array. However, it does not mention alternatives or when not to use it, though sibling tools are clearly distinct.
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 agent knows this is a safe, side-effect-free operation. The description adds no additional behavioral context, such as what exact values or format the version info will use, but it does not contradict 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 short sentence that immediately communicates the tool's purpose. Every word earns its place and the description is front-loaded with the main action, followed by the target objects.
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 zero-parameter, read-only version checker, this description is fully sufficient. The output is implied by the noun 'versions', and the strong annotations plus empty schema eliminate any need for additional caveats or preconditions.
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, which baseline gives a 4. The input schema is empty and the description makes clear there is nothing to configure, so no parameter clarifications are 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 uses a specific verb ('Show') and clearly identifies the resource ('current MCP platform and adapter versions'), making it obvious what the tool does. It is distinct from sibling tools like authenticate or connect, and reasonably differentiates from toolkit_info by focusing on version numbers.
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 no explicit guidance on when to use this tool versus alternatives. It implies one uses it whenever version information is needed, but it does not mention whether it should be used for environment diagnostics, compatibility checks, or how it relates to 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 annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully disclosed structurally. The description adds valuable context about what the return state contains (MCPs, connection status, accounts, catalog counts). However, it does not mention whether it makes network calls, its latency characteristics, or any caching behavior, keeping this at a solid 3.
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?
Exactly one sentence, front-loaded with the primary purpose ('Returns the current toolkit state') followed by a compact enumeration of the four data categories returned. Every word earns its place with zero fluff or 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 zero-parameter, read-only status tool, the description covers what return data to expect. There's no output schema, so the description's inventory of return contents (MCPs, statuses, accounts, catalog counts) provides meaningful guidance. Slightly incomplete in that it doesn't hint at the response structure/format, but that's minor for a tool this simple.
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 0 parameters with 100% schema description coverage (vacuously satisfied), so the baseline of 4 applies. The description correctly focuses on return semantics rather than parameters. Nothing more 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 uses a specific verb-resource pair ('Returns the current toolkit state') and enumerates exact contents: installed MCPs, connection status, accounts, and catalog tool counts. This clearly differentiates it from siblings like 'connect' and 'authenticate' which are action-oriented, whereas this is a status getter.
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?
Usage is implied rather than explicit. The informational nature of the tool ('Returns the current toolkit state') suggests using it for status/diagnostics, but the description never explicitly states when to prefer it over alternatives or when not to use it. A clear 'the' would be improved with a sentence like 'Use this before connecting to verify state.'
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
- Alicense-qualityCmaintenanceRead-only MCP server for consulting CPFL utility data via official source using link and OCR, with prepaid per-query pricing.MIT
- Alicense-qualityCmaintenanceThis MCP server provides a single read-only tool to query official CPFL (electric utility) bill download data via a hosted, prepaid service without requiring platform credentials.MIT
- Alicense-qualityCmaintenanceEnables consultation of Enel RJ electricity bills through official sources, featuring download and OCR capabilities. It is a read-only MCP server that works with any MCP-compatible client, using prepaid credits.MIT
- Alicense-qualityCmaintenanceMCP server for downloading and extracting text via OCR from Enel São Paulo electricity bills. Read-only with magic-link authentication and pre-paid credit usage.MIT
Your Connectors
Sign in to create a connector for this server.