Skip to main content
Glama

Prefeitura GO Jataí: Certidão Negativa de Débitos

Server Details

Prefeitura GO Jataí: Clearance Certificate (Debts), official-source lookup. Platform-hosted, pay per

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
mcp-dir/pref_go_jatai_cnd-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 7 of 7 tools scored.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes, but `connect` and `toolkit_info` both provide connection status, which could cause misselection. The `marketplace` tool is broad but clearly defined, and the domain-specific `pref_go_jatai_cnd_consultar` stands out.

Naming Consistency2/5

Tool names mix verbs (`authenticate`, `connect`), nouns (`marketplace`), and a hybrid Portuguese-English name (`pref_go_jatai_cnd_consultar`). There is no consistent pattern, and the mix of languages further reduces consistency.

Tool Count4/5

The server exposes 7 tools, which is within the recommended range. The count is reasonable, though the inclusion of six generic platform tools alongside one domain-specific tool makes the scope feel broader than the server's name alone suggests.

Completeness4/5

The domain-specific tool provides the core consultation capability, and the platform tools cover authentication, marketplace search/invocation, and diagnostics. Together they support the full workflow for accessing the certificate service, with no obvious dead ends.

Available Tools

7 tools
authenticateA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations indicate idempotentHint=true and destructiveHint=false, which are useful. The description adds significant behavioral context: it explains the two modes of authentication (permanent config vs session-only) and explicitly describes the flow (browser login, copy token, paste or add to config). It also clarifies that the token is a JWT and that no args returns the link. The only minor gap is that it doesn't explicitly state that the tool doesn't persist the token when pasted, but it does say 'session-only login', so transparency is high. No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is dense but not overly long. It front-loads the key purpose ('log in in the browser, copy the access token') and then provides procedural details. However, the sentence is quite long and includes multiple clauses and examples, which could be broken into separate sentences for easier parsing. Still, every part earns its place—it explains both permanent and session-only login, which is essential for correct use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (one optional parameter, no output schema), the description covers the essential usage scenarios and the two authentication modes. It provides enough context for an agent to understand how to invoke it correctly: either with a token for session login or without args to get a link. It also mentions the permanent config option, which is a key alternative. However, it doesn't specify what the output will be (e.g., success message, link format), but since there's no output schema, the description could have elaborated on the return value. The gap is minor given the tool's simplicity, so a 4 is justified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has a single optional parameter 'token' with no description, and schema description coverage is 0%. The description compensates somewhat by explaining that the token is a JWT and how to use it: 'call with { token: "<jwt>" } after the user pastes, or with no args to get the link.' This adds meaning beyond the schema's bare 'string' type, but it doesn't detail the token format or requirements (e.g., expiration). Given that the parameter is optional and the main behavior is well-described, a score of 3 is appropriate—it adds value but could be more precise.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to authenticate an IDE agent with the MCP.AI service. It specifies the resource (authentication) and the action (log in, provide token), and it distinguishes itself from sibling tools like 'connect' and 'marketplace' by focusing on authentication-specific workflow. The verb 'authenticate' plus the detailed flow makes the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: it's for logging in and obtaining a token, and it gives two distinct usage scenarios: (1) adding a permanent token to the server config, or (2) a session-only login by pasting the token. It also explains that calling with no args returns the login link, which clarifies the alternative usage. This fully addresses 'when to use this vs alternatives'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

connectA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds state-dependent behavior (authenticated vs missing credentials) and URL return details, which goes beyond annotations and is useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, effectively front-loaded with purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the two main states and return info. Lacks mention of partial connection states, but given no output schema and simplicity, it's adequate. Slightly more detail could be added, but it's largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. The description adds no parameter info, but there's nothing to add. It's complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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', using a specific verb (returns) and resource (connection status and URLs). It distinguishes from siblings like authenticate (which likely performs auth) and toolkit info. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use (checking connection status), but does not explicitly state when not to use or name alternatives. It implies usage via the distinct purpose, but lacks explicit exclusions.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
actionNosearch
mcp_idNo
messageNo
tool_idNo
argumentsNo{}
immediateNo
tier_slugNo
prompt_bodyNo
prompt_slugNo
prompt_toolNo
prompt_varsNo{}
conversationNo[]
prompt_titleNo
request_nameNo
cancel_reasonNo
cancel_commentNo
prompt_targetsNo
report_contextNo
prompt_categoryNo
request_detailsNo
prompt_descriptionNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are sparse (readOnlyHint=false, destructiveHint=false), so the description carries the full behavioral burden — and it delivers richly. It discloses that writes require workspace owner/admin, that invoke runs one-off without adding to toolkit, that connect links appear for credential needs, that checkout links appear for empty wallets (then retry), and that installed_mcp flags are returned by search/describe. 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While every sentence carries real information, the entire description is one dense, unstructured wall of text with run-on clauses and parentheticals ('(the user opens it, then you retry)'). It bundles the prompt library into the final sentences with no visual separation, making it hard for an agent to scan the 14-action interface efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool of this complexity — 14 actions, 23 parameters, no output schema — the action lifecycle and marketplace workflows are covered comprehensively. However, the parameter interface is left near-completely undocumented, and the prompt-library sub-section is squeezed in with less depth than the MCP flow. Valuable but incomplete for a tool this large.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% with 23 parameters, and the description explains the action enum thoroughly but does not document any of the other 22 parameters (limit, immediate, tier_slug, conversation, prompt_vars, report_context, etc.). The description compensates for the action field and flow (search/describe/invoke lifecycle) but leaves the remaining parameter surface entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as the mcp.ai marketplace — the catalog of every MCP/tool and the way to run them. It names the specific resources (MCPs, prompts) and actions (search, invoke, install) and differentiates from siblings like authenticate and report_bug, which are handled as separate tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Extremely explicit when-to-use guidance: 'use install only to make an MCP PERMANENT', 'prefer invoke for a single/occasional use', plus differentiation between search/describe/invoke/list_tools and subscribe/cancel for billing. It even maps user intents ('find an MCP that does X', 'consulta um CPF') to the correct action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pref_go_jatai_cnd_consultarA
Read-onlyIdempotent
Inspect

Prefeitura GO Jataí: Certidão Negativa de Débitos, 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
cpfNo
cnpjNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it is hosted by the platform, requires no platform credentials, and charges prepaid credits per consultation. This goes beyond annotations by explaining the business model and data privacy context, aligning with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph of moderate length, front-loaded with the main purpose. It includes necessary details about hosting, credentials, payment, and LGPD compliance. Slightly verbose but each sentence adds relevant context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (two params, no output schema) and rich annotations, the description covers the essential purpose and business context. It doesn't explain parameter specifics but that's a parameter semantics gap. The description adequately sets expectations for a paid query service.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has two parameters (cpf, cnpj) with no descriptions and 0% coverage. The description mentions the tool queries CND but does not clarify that either cpf or cnpj must be provided or their format (e.g., digits only, with or without punctuation). It also doesn't explain if both are required or optional, since required parameters are 0, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries Certidão Negativa de Débitos from Prefeitura GO Jataí via an official source. It mentions the consultation is per-query with prepaid credits, distinguishing it from generic sibling tools like authenticate or marketplace, though it doesn't explicitly contrast with a similar query tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use: to consult official Brazilian source data, specifically CND from Jataí prefecture. It also notes it's not confidential data and the client is responsible for legitimate purpose under LGPD, implying compliance context. It doesn't discuss alternatives but siblings are not similar query tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_bugA
Idempotent
Inspect

Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
messageYes
conversationNo[]
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true, readOnlyHint=false, and destructiveHint=false, so the description's behavior is consistent. The description adds the note about including a conversation array, which is a usage detail, not a behavioral disclosure. It does not describe side effects (e.g., sending data externally) or any limitations. With annotations covering the safety profile, the description adds minimal extra behavioral context, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose, and includes a single practical usage tip. No redundant wording or filler. Every sentence earns its place, making it appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (3 params, no output schema, no enums) and available annotations, the description covers the core purpose and a key usage hint. It lacks explicit when-to-use guidance, but siblings are unrelated so confusion is unlikely. The missing parameter details for 'message' and 'context' are minor gaps; overall the description is adequate for a straightforward reporting tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It explains the 'conversation' parameter by saying 'Include the conversation array with recent messages,' which clarifies its purpose and expected content. However, it does not explain 'message' or 'context'. The description adds value for one parameter but leaves the other two undocumented. For a tool with 3 parameters, this partial compensation warrants a 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: reporting a bug, missing feature, or feedback. It uses a specific verb ('Report') and identifies the resource (bug/feature/feedback). While it doesn't explicitly distinguish from siblings, the sibling tools are unrelated (authenticate, connect, marketplace, etc.), so the purpose is unambiguous and stands alone effectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage hint: 'Include the conversation array with recent messages for reproduction.' This guides the agent on how to call the tool effectively. However, it does not explicitly state when to use this tool versus alternatives. Given that siblings are unrelated, the implicit 'when to use' is clear (for bug reporting), but there's no explicit 'when not to use' or alternative naming. The guidance is useful but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_versionA
Read-onlyIdempotent
Inspect

Show the current MCP platform and adapter versions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, and non-destructive behavior; the description adds no contradictory or additional behavioral details, which is acceptable given the strong annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no redundant words, perfectly matching the simplicity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully explains what the tool does and there is no output schema to elaborate on, making it sufficiently complete for a no-parameter informational operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds no parameter-specific information because there are none to explain, aligning with the baseline of 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Show') and resource ('MCP platform and adapter versions'), distinguishing it from siblings like authenticate or connect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly mention when to use this tool versus alternatives such as toolkit_info or report_bug, but the straightforward nature implies it is a general informational query with no prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

toolkit_infoA
Read-onlyIdempotent
Inspect

Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, which fully cover safety. The description adds details about the return content but does not disclose any additional behavioral aspects (e.g., rate limits, errors). Since annotations are strong, this is adequate, but the description itself contributes minimal extra transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that front-loads the primary purpose ('Returns the current toolkit state') and enumerates the key output components. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no parameters, no output schema). The description sufficiently explains what the tool returns, covering all major aspects likely needed by an agent. There is no significant missing information given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema trivially covers 100%. Per rubric, a baseline of 4 is appropriate; the description does not need to explain parameters, and it correctly focuses on the output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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, listing specific details (installed MCPs, connection status, accounts, catalog tool counts). It distinguishes itself from action-oriented siblings like authenticate and connect by focusing on informational retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (to inspect toolkit state) but does not explicitly contrast it with alternatives or state when not to use it. Given siblings like authenticate and connect, the usage context is fairly obvious, but no explicit guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying negative debt certificates (Certidão Negativa de Débitos) from the Naviraí city government (Prefeitura MS Naviraí) through an official source, providing read-only consultation via natural language.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Consulta Certidão Negativa de Débitos da Prefeitura MG Uberaba em fonte oficial, somente leitura, via MCP over HTTP.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only consultation of negative debt certificates (Certidão Negativa de Débitos) from the Juatuba city prefecture in Minas Gerais, Brazil, through a single official tool.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.