CNIA (Improbidade Administrativa)
Server Details
Checks convictions for administrative misconduct and ineligibility (CNIA) of a person or company fro
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/cnia_improbidade-mcp
- GitHub Stars
- 0
- Server Listing
- CNIA (Improbidade Administrativa)
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.2/5 across 7 of 7 tools scored. Lowest: 3.5/5.
Most tools have clearly distinct roles: authenticate handles login, connect shows status, cnia_improbidade_consultar does the actual CNIA lookup, and the rest are meta/utility tools. The only mild overlap is between authenticate and connect, but their descriptions differentiate them adequately.
Naming is inconsistent across languages and styles: English verbs (authenticate, connect), Portuguese verb_noun (cnia_improbidade_consultar), and noun-based names (marketplace, toolkit_info). The mix of snake_case and lowercase without a clear convention makes the set feel ad hoc.
At 7 tools, the count is reasonable, but the set is heavily skewed toward platform/meta tools (authenticate, connect, marketplace, report_bug, show_version, toolkit_info) with only one domain-specific CNIA tool. This feels over-inflated for a dedicated CNIA server, yet the total number is not excessive.
The core domain operation of querying CNIA by CPF/CNPJ is covered, and no additional CNIA-specific actions are obviously needed for a simple lookup. However, the server's broader scope as a marketplace and toolkit means the CNIA surface is minimal, and there are no bulk or advanced query options.
Available Tools
7 toolsauthenticateAIdempotentInspect
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header Authorization: Bearer <token> for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "" } after the user pastes, or with no args to get the link.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it explains that passing a token gives a session-only login, while using a config header gives a non-expiring connection, and that no args returns a link. Annotations only state idempotent and non-destructive, and the description does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise paragraph with valuable info about the login workflow, token usage, and config alternative. It is slightly longer than necessary but every sentence contributes, and the front-loaded mention of 'log in' gives immediate 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?
Given the tool's simplicity (one optional param, no output schema), the description provides enough context: it specifies the token format, the two usage modes, and the link retrieval. It could be more explicit about the response structure, but 'to get the link' implies the output, so it is sufficiently complete.
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 optional 'token' string with no description. The description compensates fully by explaining the token is a JWT, how to pass it, and that omitting it triggers a link-retrieval behavior. This adds critical meaning absent from the schema.
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: to authenticate the user via a browser login flow, accepting a JWT token or returning a link when no args are given. It uses a specific verb ('log in') and explains the workflow, distinguishing it from sibling tools like 'connect' which likely have different functions.
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 usage guidance: adding the token to the server config for a permanent connection, or pasting it here for a session-only login. It also specifies to call with no args to get the link. This clearly tells when to use the tool and the two modes of operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cnia_improbidade_consultarARead-onlyIdempotentInspect
Verifica condenações por improbidade administrativa e inelegibilidade (CNIA) de uma pessoa ou empresa a partir do CPF ou CNPJ. Hospedado pela plataforma, sem credenciais, pague por consulta com crédito pré-pago. Consulta informação de ACESSO PÚBLICO em bases e fontes oficiais (a mesma disponível ao cidadão), não é dado privado nem sigiloso. O cliente é o controlador dos dados e responde pela finalidade legítima (LGPD).
| Name | Required | Description | Default |
|---|---|---|---|
| Cpf | Yes | ||
| Cnpj | Yes | ||
| completo | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive. Description adds context: data is public access, paid per query, no credentials, LGPD responsibility. This goes beyond annotation defaults and clarifies data privacy expectations.
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?
Description is a single cohesive paragraph with the core purpose upfront. Sentences are relevant, covering purpose, access, payment, and data nature. Slightly verbose on LGPD, but generally efficient.
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?
Despite covering access/payment/privacy, it omits explanation of the 'completo' parameter and the conflicting requirement of both CPF and CNPJ. Without an output schema, it also doesn't describe what results look like, leaving significant gaps for a 3-parameter tool.
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 description must explain parameters. It mentions CPF or CNPJ but doesn't clarify that schema requires both, nor does it explain the 'completo' boolean. This creates ambiguity about required 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 verifies administrative impropriety and ineligibility (CNIA) using CPF or CNPJ, with a specific verb and resource. It distinguishes from sibling tools which are authentication/marketplace utilities.
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 clear context on when to use: to check CNIA records. States it requires no credentials and is paid via prepaid credit, offering operational guidance. Lacks explicit exclusion of alternatives, but no direct sibling alternative exists.
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 safe (readOnlyHint, idempotentHint, destructiveHint false). The description adds valuable context about response states (authenticated:true with empty pending[] when connected, connect_url and per-install URLs when missing credentials), going beyond the structured metadata.
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, no fluff, front-loaded with the primary action. Every sentence earns its place, making it a model of concise writing.
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 read-only status tool with no output schema, the description covers the essential information: what it returns and under what conditions. It is complete for the tool's complexity and leaves no critical 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 tool has zero parameters, so the description has no parameter responsibilities. Per the rubric, baseline is 4; the description appropriately doesn't invent parameter details.
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 states the tool 'Returns connection status and URLs' with a specific verb and resource. It also details conditional behavior (connected vs missing credentials), making it distinct from siblings like 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?
Usage is implied rather than explicit: it describes what the tool does but doesn't say 'Use this to check connection status' or contrast with authenticate. The sibling tool list suggests a clearer distinction could be made, but it's still inferable.
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 many non-obvious behaviors: invoke works even when the MCP is not installed, runs one-off without bloating the toolkit, returns a connect link when credentials are needed, returns a checkout/top-up link when the wallet is empty, and requires workspace owner/admin for writes. These details go far beyond the annotations (readOnlyHint: false, openWorldHint: true) and are critical for safe invocation.
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: it covers the catalog concept, core flow, invoke's one-off behavior, connect/checkout links, install vs invoke, permission requirements, and the prompt library. It could be improved with bullet points or mini-headings, but given the tool's complexity (14 actions, 23 params), it remains concise and front-loaded with the most important information.
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 14 actions, 23 parameters, and no output schema, the description is remarkably complete. It covers the end-to-end flow, conditional behaviors (authenticated vs paid), permission requirements, and even the separate prompt library subsystem. It explains what to do when credentials are missing or wallet is empty, and clarifies 'installed_in_toolkit vs installed_in_workspace' flags. The only minor gap is a lack of pagination/return-format details, but since there is no output schema, the description does not explicitly need to cover that.
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 0% schema coverage, the description compensates significantly by explaining the central 'action' parameter (search, describe, invoke, install, etc.) and key fields like mcp_id, tool_id, arguments, and prompt_* parameters. It doesn't systematically describe all 23 parameters (e.g., cancel_reason, prompt_targets), but it gives enough semantic meaning for the primary workflow. A 4 is appropriate for substantial compensation, though not exhaustive.
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 opens with a clear statement: 'The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them.' It then details the core flow (search → describe → invoke) and explicitly lists each action (install, uninstall, subscribe, cancel, list_tools, etc.), making the tool's scope unmistakable. It also distinguishes itself from sibling tools by covering report_bug and request_mcp, and contrasts with the separate authenticate/connect tools implicitly.
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: 'Use install only to make an MCP PERMANENT in the active toolkit' and 'prefer invoke for a single/occasional use.' It also clarifies when to use search vs describe, explains that list_tools shows what is callable right now, and notes alternatives like request_mcp for building new MCPs. This goes beyond mere context and offers concrete decision rules.
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 readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the useful detail that the conversation array is needed for reproduction, which helps the agent understand why the parameter is required. However, it does not disclose any effects like who receives the report, confirmation of receipt, or potential side effects, so transparency is only partially enhanced.
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 long, front-loaded with the primary purpose, and contains no filler. It efficiently conveys the core action and the key reproduction requirement.
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?
While the tool is simple, the description omits important context: there is no explanation of the 'context' parameter, no guidance on how to format the conversation array, and no mention of what the tool returns or whether confirmation is given. With no output schema and sparse annotations, the description is not fully complete for an AI agent to invoke with confidence.
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 0% schema description coverage, the description must compensate for parameter documentation. It explains the purpose of 'conversation' (recent messages for reproduction), but 'context' is left undocumented, and 'message' is only indirectly inferable. Additionally, the description calls 'conversation' an array while the schema type is string, potentially leading to incorrect input formatting.
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 verb 'Report' and the resources (bug, missing feature, feedback), making the tool's purpose unambiguous. It also distinguishes itself from siblings like authenticate or marketplace by its explicit focus on issue reporting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Report a bug, missing feature, or send feedback') but does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. Siblings are unrelated, so differentiation is less critical, but there is no direct guidance beyond the implied purpose.
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 convey read-only, idempotent, and non-destructive behavior. The description adds no further behavioral context, but for a simple version query, this is sufficient. It does not contradict 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 single concise sentence that directly states the tool's purpose without any wasted words or redundant information.
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 version-information tool with no parameters, no output schema, and complete annotations, the description is fully adequate and leaves no ambiguity about what the tool does.
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 zero parameters, the schema is fully covered. The description does not need to elaborate on parameter semantics, and the baseline for no parameters is 4.
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 shows the current MCP platform and adapter versions. The verb 'show' and resource 'versions' make the purpose explicit, and it naturally distinguishes itself from sibling tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when version information is needed, but it does not explicitly state when to use it over other informational tools like toolkit_info. There is no exclusion or alternative guidance provided.
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?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable context by detailing the exact information returned (installed MCPs, connection status, accounts, counts), going beyond what the annotations state.
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?
A single sentence that is front-loaded with the core purpose ('Returns the current toolkit state') and enumerates all key aspects without waste. Every word earns its place.
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 information tool with no output schema, the description is complete. It fully specifies what the tool returns and gives enough context for an agent to decide to invoke it.
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, and the schema is empty. Per the scoring guide, 0 parameters earns a baseline of 4. The description could have mentioned the absence of parameters but is not required to.
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 function: 'Returns the current toolkit state' and enumerates specific details (installed MCPs, connection status, connected accounts, catalog tool counts). This is a specific verb+resource that distinguishes it from sibling tools like show_version or marketplace.
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 implicitly communicates when to use the tool (whenever you need current toolkit state), but it does not explicitly contrast with alternatives. Unlike strong examples that name sibling tools, this description leaves the agent to infer usage context.
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-qualityCmaintenanceVerifica se uma pessoa ou empresa consta no Cadastro Nacional de Empresas Punidas (CNEP) a partir do CPF ou CNPJ, com consulta por crédito pré-pago e integração MCP.MIT
- Alicense-qualityCmaintenanceVerifies whether a company has entered into a leniency agreement under the Brazilian Anti-Corruption Law by CNPJ, read-only, hosted without credentials, pay-per-query.MIT
- -license-quality-maintenanceConsulta infrações trabalhistas registradas pelo Ministério do Trabalho e Emprego a partir de CPF ou CNPJ. Enables read-only querying of labor infractions for individuals or companies via MCP.
- Alicense-qualityBmaintenanceEnables searching and analyzing Brazilian sanctions across multiple registers (CNEP, CEIS, CEPIM, CEAF, Leniency Agreements) via CNPJ/CPF or name for leniency agreements, with tools for status checks, sanctioning authorities, location info, and comprehensive reports.1MIT
Your Connectors
Sign in to create a connector for this server.