Portal da Transparência: Repasse de Verba
Server Details
Portal da Transparência: Repasse de Verba, official-source lookup. Platform-hosted, pay per query wi
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mcp-dir/portal_transparencia_repasse-mcp
- GitHub Stars
- 0
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.3/5 across 7 of 7 tools scored.
The domain-specific portal tool is clearly distinct, but most of the set is platform-level tooling. `marketplace` is an overloaded catch-all with search, install, billing, prompt, and bug-report actions, and its report_bug behavior overlaps the standalone `report_bug` tool. `authenticate` and `connect` also have fuzzy boundaries around auth/status.
Tool names mix bare verbs (`connect`, `authenticate`), English snake_case (`report_bug`, `toolkit_info`), a broad noun (`marketplace`), and a long Portuguese verb-phrase (`portal_transparencia_repasse_consultar`). There is no consistent verb_noun pattern or language convention across the set.
Seven tools is not inherently too many, but six of them are generic platform/marketplace utilities and only one serves the stated Portal da Transparência domain. The set feels padded with infrastructure instead of focused on the portal's data surface, making the count inappropriate for the server's stated purpose.
For a transparency-portal server, the only domain operation is a single, vaguely described `consultar` tool with no visible filters, parameters, list/resource types, or further workflows. A read-only tool could be legitimate, but the description suggests a very narrow surface and leaves obvious query-related capabilities undefined. The rest of the tools do not contribute to domain completeness.
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 meaningful behavioral context beyond the annotations: it explains the authentication workflow, the permanent vs session-only distinction, and that no-args returns a link for browser login. It is consistent with the annotations, which already signal idempotency and non-destructive behavior.
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 sentences and densely informative, with the primary purpose stated first and the parameterization explained with concrete examples. Every sentence adds value, and code formatting helps distinguish the two invocation patterns.
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 simple one-optional-parameter schema and no output schema, the description is complete: it covers purpose, invocation modes, user interaction, and setup guidance. It gives an agent enough detail to select the tool and call it correctly in either mode.
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 shows an optional string token with no description, but the tool description fully explains that 'token' is a JWT access token and that omitting it triggers the link-returning flow. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool handles MCP.AI authentication for IDE agents, explaining the browser login and token flow. It is more than a tautology and uses concrete verbs like 'log in' and 'call', though it does not explicitly distinguish itself from the sibling tool '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?
It gives explicit usage context: adding the token to the server config for a permanent non-expiring connection, or pasting it for session-only login, and calling with no args to get the link. It lacks an explicit 'when not to use' or mentions of alternative sibling tools, but the guidance is clear.
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, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds value by detailing the two output states (authenticated vs. missing credentials) and specific fields (authenticated, pending, connect_url, per-install URLs), which goes beyond the annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and efficiently conveys conditional results. Every clause adds value with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description covers the essential behavior: it returns connection status and URLs, explains two states (all connected vs missing credentials), and mentions key fields (authenticated, pending, connect_url). This is complete for the tool's 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. According to guidelines, baseline for 0 params is 4. The description doesn't need to explain parameters since there are none. It doesn't add any parameter-related info but doesn't need 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 states 'Returns connection status and URLs,' which is a specific verb+resource combination. It clearly distinguishes from sibling tools like authenticate (auth flow) and show_version (version info). The conditional behavior (authenticated vs missing credentials) further clarifies its role as a status checker.
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 by explaining what it returns in different states, but it doesn't explicitly say when to use it or when not to. It doesn't name alternatives or exclude other tools. However, the context is clear enough for an agent to infer it's for checking connection status. Lacks explicit exclusion guidance, but is still helpful.
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 goes well beyond the annotations by disclosing that writes require workspace owner/admin, that invoke runs one-off without bloating the toolkit, that missing credentials return a connect link, and that empty wallets return a checkout link requiring retry. It also explains the prompt library's behavior with shareable links. 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 dense single paragraph but front-loaded with the primary purpose and core flow. Every sentence adds value, but the lack of bullet points or section breaks makes it harder to scan. For a tool with 14 actions and 23 parameters, the length is justified.
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 complexity (14 actions, 23 params, no output schema), the description covers the main flows, permissions, edge cases (connect/checkout links), and the prompt library. It provides enough context for an agent to select the correct action and understand the consequences, even without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the meaning of key parameters (action, mcp_id, tool_id, arguments, prompt_* fields) through the core flow and action list. However, 23 parameters exist and some (limit, query, immediate, tier_slug, conversation, cancel_reason) are not explicitly described, though many are self-explanatory from names/defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as the official mcp.ai marketplace and catalog, with a specific verb+resource ('search/describe/invoke/install') and a core flow. It distinguishes itself from siblings by positioning itself as the in-platform catalog and runner, while siblings like authenticate/connect/toolkit_info serve 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?
Explicit guidance is provided: 'prefer invoke for a single/occasional use', 'Use install only to make an MCP PERMANENT', 'list_tools lists what is callable right now', and each action (subscribe/cancel/report_bug/request_mcp) is given a one-line purpose. This clearly tells the agent when to use this tool and how to choose among its many actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portal_transparencia_repasse_consultarARead-onlyIdempotentInspect
Portal da Transparência: Repasse de Verba, consulta em fonte oficial. Hospedado pela plataforma, sem credenciais da plataforma, pague por consulta com crédito pré-pago. Consulta informação de fontes e órgãos oficiais brasileiros (a mesma disponível ao cidadão), não é dado sigiloso. O cliente é o controlador dos dados e responde pela finalidade legítima (LGPD).
| Name | Required | Description | Default |
|---|---|---|---|
| ano | Yes | ||
| tipo | No | ||
| localidade | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations already declare readOnlyHint, idempotentHint, and destructiveHint, the description adds meaningful behavioral and contractual context: the tool is hosted by the platform, requires no platform credentials, is paid via prepaid credit, queries public non-confidential data, and the client is the LGPD data controller. This goes well 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 short, front-loaded with the core purpose, and every sentence adds relevant information about source, cost, credentials, data sensitivity, or legal responsibility. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, official source, payment model, and LGPD context, but it lacks parameter semantics and return-value expectations. With no output schema and undocumented parameters, the agent is left without enough detail to safely and correctly invoke the tool in all cases.
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% and the description does not explain the meaning, format, or allowed values of 'ano', 'localidade', or 'tipo'. The description provides no parameter-level guidance, so the agent cannot reliably determine how to fill the arguments, especially 'tipo'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a consultation/query operation against the official Brazilian transparency portal for fund transfers ('Portal da Transparência: Repasse de Verba, consulta em fonte oficial'). It specifies the resource and action, and it is easily distinguished from the sibling tools (auth, marketplace, bug reporting, etc.).
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 useful context for when to use the tool: to query official Brazilian public data available to citizens, with no platform credentials and prepaid per-query billing. It does not explicitly state exclusions or alternatives, but the context is clear enough and no sibling tool competes for the same purpose.
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 provide readOnly=false, idempotent=true, destructive=false, so the description doesn't need to restate those. The description adds the useful requirement to include conversation for reproduction, but doesn't disclose what happens after reporting (e.g., response format, rate limits, or authentication needs). With annotations covering the basic safety profile, this is acceptable but not rich.
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, compact sentence that immediately states the tool's purpose. It is front-loaded with the core action and gives a necessary instruction (including the conversation) without any irrelevant detail.
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 with no output schemaamente, the description adequately covers the primary use case and the key parameter (conversation). The lack of mention of the context parameter is a minor gap, but the tool's simplicity and optional context (defaulting to empty) make the description sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions). The description clarifies the purpose of the conversation parameter (reproduction), but calls it an 'array' while the schema defines it as a string (likely JSON-encoded). The context parameter is completely unaddressed. Partial compensation, but with potential for confusion.
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 action ('Report a bug, missing feature, or send feedback') and identifies the resource (the tool itself for submitting reports). It clearly distinguishes its purpose from sibling tools like authentication or marketplace tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on what to report and emphasizes including the conversation array for reproduction. No competing alternatives exist among siblings, so exclusions are unnecessary, but it lacks explicit when-not-to-use guidance.
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 read-only, idempotent, and non-destructive behavior, so the description does not need to repeat these. It adds specificity by highlighting 'current' versions and the involved components (platform and adapter), which reinforces the non-mutating nature. No contradiction exists.
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 with no unnecessary words. It conveys the essential information efficiently, earning a perfect score for structure and economy.
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?
No output schema is provided, but the description gives a clear idea of what the tool returns (version numbers for platform and adapter). It does not specify the exact format or structure, but for a simple version-check tool, this level of detail is sufficient. The description is complete enough for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is effectively 100%. The description does not add parameter-related details, but none are needed. Baseline score of 3 is appropriate as the description doesn't enhance parameter understanding beyond what the schema provides.
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 'Show' and clearly identifies the resource ('current MCP platform and adapter versions'), making the tool's purpose unambiguous. It distinguishes itself from sibling tools like 'toolkit_info' by focusing on version information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it mention any conditions or caveats. However, given its simple and self-explanatory nature, the intended usage is implicitly clear—likely for checking version numbers. Still, explicit guidance is missing.
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, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by detailing the exact state information returned, which goes beyond mere 'returns toolkit info.'
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 with no wasted words. It immediately states the action and then lists the concrete contents of the returned toolkit state.
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?
With no input schema parameters and no output schema, the description carries full burden for explaining return content, and it succeeds by naming the main elements: MCPs, connection status, connected accounts, and catalog tool counts. This is complete for a simple read-only state 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?
There are zero parameters and an empty input schema, so the baseline is 4. The description does not need to explain parameters and instead focuses on what the tool returns, which is appropriate for a no-argument introspection 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 uses a specific verb ('Returns') with a clear resource ('current toolkit state') and enumerates exactly what is included: installed MCPs, connection status, accounts, and catalog tool counts. This clearly distinguishes it from sibling action-oriented tools like authenticate, connect, and report_bug.
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 inspecting toolkit status but does not explicitly state when to prefer this over alternatives like show_version or marketplace. It provides a clear context but no when-not-to-use guidance or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides government transparency indicators for Brazilian individuals (CPF/NIS) via the Portal da Transparência, enabling read-only queries through natural language.MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying travel and expense information of Brazilian federal executive servants by CPF via the Transparency Portal. This read-only, hosted MCP server works with any MCP client and uses prepaid credits for consultations.MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only consultation of Brazilian TSE donor and supplier data via official source, with pay-per-use prepaid credits.MIT

Brazilayer MCP Serverofficial
AlicenseBqualityAmaintenanceEnables AI agents to access Brazilian public data including company registry and official sanction lists via MCP tools, with pay-per-call via USDC.38MIT