CNEP (Empresas Punidas)
Server Details
Checks whether a person or company is in the National Register of Punished Companies (CNEP) from the
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/cnep-mcp
- GitHub Stars
- 0
- Server Listing
- CNEP (Empresas Punidas)
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.
Each tool has a clear primary purpose: authenticate, query CNEP, connect, marketplace, report bug, show version, and toolkit info. The only overlap is between connect and toolkit_info, both of which report connection status, but their roles are otherwise distinct.
Tool names mix bare verbs (authenticate, connect), a noun (marketplace), noun_verb (cnep_consultar), and verb_noun (report_bug, show_version), with inconsistent use of underscores. There is no uniform pattern, which makes the set feel haphazard.
Seven tools is within the acceptable range, but the balance is skewed: only one tool (cnep_consultar) addresses the server's apparent domain, while the other six are generic platform utilities. This makes the count feel inflated for a CNEP-focused server, though each tool does have a role.
For the CNEP domain, the set provides only a single lookup operation, with no options for broader searches, history, or data export. The platform utilities are comprehensive for their meta-purpose, but they do not fill the domain coverage gap.
Available Tools
7 toolsauthenticateAIdempotentInspect
MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header Authorization: Bearer <token> for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "" } after the user pastes, or with no args to get the link.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive behavior. The description adds meaningful behavioral context: calling with no args returns a login link, passing a token establishes a session-only login, and configuring the header gives a permanent connection. It also clarifies the JWT nature of the token, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, explaining the purpose in the first phrase. It packs essential details into two sentences, covering both usage modes and the session/permanent distinction without unnecessary filler. Slightly long for a tool description, but every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description implicitly covers return behavior ('get the link') and the interaction flow (user pastes token). It addresses the main scenarios—permanent config, session token, and link retrieval—but does not detail error handling or post-auth state, which is acceptable for an auth helper.
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 fully compensates by explaining the 'token' parameter as a JWT from the browser, noting it is optional, and describing the no-arg behavior (returns a link). This gives complete semantic meaning to the parameter despite the bare 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: authenticate with MCP.AI for IDE agents. It specifies the exact flow (log in, copy token, provide it) and distinguishes between two authentication modes (config header vs session token), making it distinct from sibling tools 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 provides explicit usage guidance: it recommends the permanent config header approach, explains the session-only token option, and clarifies when to call with no arguments (to get a link). It does not explicitly mention alternatives or when not to use, but the guidance is clear and contextually sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cnep_consultarARead-onlyIdempotentInspect
Verifica se uma pessoa ou empresa consta no Cadastro Nacional de Empresas Punidas (CNEP) 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 readOnlyHint and idempotentHint, and the description adds valuable context beyond that: 'sem credenciais', 'pague por consulta com crédito pré-pago', 'ACESSO PÚBLICO', and LGPD obligations. It does not contradict annotations and provides meaningful behavioral nuance.
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 three concise, purposeful sentences. It front-loads the main purpose, then adds operational and legal context without redundancy. Every sentence 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?
Although the description provides strong legal/cost context, it lacks critical operational details: how to format CPF/CNPJ, the contradictory requirement of both vs either field, what 'completo' does, and what the return value looks like. With no output schema or parameter descriptions, the agent cannot reliably invoke the 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 the description must compensate. It mentions 'a partir do CPF ou CNPJ' giving some meaning to Cpf/Cnpj, but contradicts the schema which requires both fields. The optional 'completo' parameter is not explained at all, leaving its purpose unclear.
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: 'Verifica se uma pessoa ou empresa consta no Cadastro Nacional de Empresas Punidas (CNEP) a partir do CPF ou CNPJ.' It names the specific resource (CNEP) and differentiates from unrelated sibling tools like authenticate and 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 provides operational context: hosted by the platform, no credentials, pay-per-query with prepaid credit, and emphasizes public access data with LGPD responsibility. It does not explicitly state when to use vs alternatives, but no similar sibling tools exist, so the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connectARead-onlyIdempotentInspect
Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds context about two return states (all connected vs. missing credentials). However, it does not cover partial connection states or explain the contents of the 'pending' array, leaving behavioral gaps.
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 provides conditional details without any fluff. Every sentence 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?
There is no output schema, so the description must explain return values. It covers two states but omits partial connectivity and error cases, leaving the agent uncertain about other possible responses.
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 baseline is 4. The description correctly avoids parameter details and instead focuses on output behavior, which is appropriate for a parameterless tool.
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 behavior. This distinguishes it from siblings like authenticate, which perform an action, whereas connect is a read-only status check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking connection status but does not explicitly state when to use it instead of other tools, nor mention any exclusions. There is no guidance on when not to use it or alternative tools for specific scenarios.
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 adds substantial behavioral context beyond the sparse annotations: invoke runs a tool one-off without adding the MCP to the toolkit, missing credentials produce a connect link, paid tools with empty wallets produce a checkout link, and writes require workspace owner/admin. It also explains installed_in_toolkit vs installed_in_workspace flags. There is no contradiction with 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 long but densely informative, front-loading the core marketplace purpose and the search→describe→invoke flow. It contains no filler, but it is one continuous run-on paragraph with semicolons and many clauses that could be easier to parse with bullets or subheadings.
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 23-parameter, multi-action tool with no output schema, the description is unusually complete: it covers the full lifecycle, install vs invoke semantics, auth/checkout recovery, permission requirements, and the separate prompt library. It omits the 'resume' action and does not explain return/error behavior or several secondary parameters, which prevents a 5.
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 carry the parameter-meaning load. It does explain the action enum values and the roles of query, mcp_id, tool_id, arguments, and prompt_vars/slug. However, many parameters—limit, immediate, tier_slug, cancel_reason/comment, report_context, request_details, prompt_body/title/category/targets, and conversation—are never mentioned, so the compensation is partial rather than complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is 'the official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them' and covers capability requests like 'find an MCP that does X'. It names the core actions (search, describe, invoke, install) and the prompt library, so the resource and main verbs are specific. However, it does not explicitly differentiate this tool from siblings like toolkit_info or report_bug, so it misses the top score.
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 guidance is explicit and detailed: it gives the search→describe→invoke core flow, contrasts 'prefer invoke for a single/occasional use' with 'Use install only to make an MCP PERMANENT', and explains when to use list_tools, subscribe/cancel, report_bug, and request_mcp. It also explains the connect/checkout recovery workflow and notes write permissions, which is exactly the kind of alternative guidance the rubric rewards.
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, destructiveHint=false, and idempotentHint=true, providing the safety profile. The description adds minimal behavioral context beyond purpose, only mentioning the need for conversation data. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise two-sentence statement, with the purpose front-loaded and the usage note about the conversation array being brief and relevant. No filler or redundant content.
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 reporting tool, the description conveys the core purpose and the key requirement to include conversation data. However, it omits explanation of the 'message' and 'context' parameters and does not describe expected outcomes, leaving some 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?
Schema description coverage is 0%, so the description must compensate. It explains the 'conversation' parameter but leaves 'message' and 'context' unexplained. This is insufficient for full parameter semantics, as two of three parameters are not addressed in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'report' and identifies the resources (bug, missing feature, feedback), making its purpose unmistakable. The sibling tools (authenticate, connect, marketplace, etc.) do not overlap, so purpose is clearly differentiated.
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 when to use this tool: whenever the user wants to report a bug, missing feature, or give feedback. It also provides explicit guidance to include the conversation array for reproduction, which is practical usage advice. However, it does not explicitly mention exclusions or alternatives, so it stops short of a 5.
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, idempotentHint, and destructiveHint, covering safety. The description adds context about what specifically is shown (MCP platform and adapter versions), which is useful beyond the annotations. No contradiction; the description complements 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, front-loaded sentence that conveys the entire purpose without any filler. It is concise and perfectly structured for quick understanding.
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, the description is fully sufficient. It explains exactly what the tool returns (versions), and no output schema or further details are necessary given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description doesn't need to add parameter information, and the schema already confirms no parameters exist.
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 'Show the current MCP platform and adapter versions' with a specific verb ('Show') and resource ('versions'), distinguishing it from sibling tools like authenticate or marketplace. It unambiguously identifies the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose as a version checker is immediately clear, implying when to use it (e.g., troubleshooting or verification). No explicit alternatives are needed given its simplicity and distinct sibling set, so it meets the 'clear context, no exclusions' criterion.
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, informing the agent this is a safe read operation. The description adds valuable context by listing exactly what state is returned (installed MCPs, connection status, connected accounts, catalog tool counts), going beyond the annotations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that leads with the key action ('Returns') and then lists the specific components of the toolkit state. Every phrase adds meaning; there is no waste 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?
Given the tool's simplicity (0 parameters, no output schema) and the strong annotation coverage (read-only, idempotent, non-destructive), the description is complete. It specifies all the key state components an agent would need to decide whether to invoke it and what to expect from the response.
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, so the input schema is trivially 100% covered. Per the rubric, a tool with 0 parameters gets a baseline of 4. The description appropriately focuses on return value rather than parameters, so no additional parameter explanation 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 the specific verb 'Returns' and names concrete resources: 'current toolkit state', including 'installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.' This clearly distinguishes the tool from siblings like show_version (which likely only returns version info) and action-oriented tools like authenticate and 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 should be used to inspect the overall toolkit state, but it does not explicitly state when to prefer it over alternatives such as show_version or connect. No exclusion criteria or alternative tool names are mentioned, so usage guidance is only implied.
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-qualityCmaintenanceChecks whether a private non-profit entity is listed in CEPIM (impeded from receiving public funds) using its CNPJ. Offers a read-only tool for any MCP client via HTTP.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
- Alicense-qualityCmaintenanceVerifica se uma pessoa ou empresa consta na Lista de Devedores da União (PGFN) a partir do CPF ou CNPJ, com consulta somente leitura.MIT
- 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.