Cambio Uruguay MCP
Fetches the latest Uruguayan dollar/economy headlines from Google News, de-duplicated and sorted newest first.
cambio-uruguay-mcp
A Model Context Protocol server exposing live Uruguayan exchange-rate data — every casa de cambio, the best house to buy or sell, currency conversion, and rate history — to any MCP-capable AI assistant (Claude Desktop, Cursor, Cline, …).
Read-only wrapper over the public cambio-uruguay.com API. No account, no API key, no scraping.
Quick start (local, stdio)
No install needed — run it with npx:
npx cambio-uruguay-mcpClaude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"cambio-uruguay": {
"command": "npx",
"args": ["-y", "cambio-uruguay-mcp"]
}
}
}Cursor
.cursor/mcp.json (or Settings → MCP):
{
"mcpServers": {
"cambio-uruguay": { "command": "npx", "args": ["-y", "cambio-uruguay-mcp"] }
}
}Cline / Continue / other stdio clients
Same shape: command npx, args ["-y", "cambio-uruguay-mcp"].
Related MCP server: AllRatesToday MCP Server
Hosted endpoint (remote, no install)
A public Streamable-HTTP endpoint is available for clients that support remote MCP servers:
https://mcp.cambio-uruguay.com/mcp{
"mcpServers": {
"cambio-uruguay": { "url": "https://mcp.cambio-uruguay.com/mcp" }
}
}It is stateless and read-only.
Tools
Tool | Description |
| Buy/sell for a currency across all houses: market average, best buy/sell house, lowest spread, per-house list. |
| The single best casa de cambio to buy (lowest sell) or sell (highest buy) a currency now. |
| Convert an amount between currencies at the best market rates (foreign↔foreign routes through UYU). |
| Every tracked exchange house with name, website, and departments served. |
| Historical series + stats (min/max/avg/current/change) for a house + currency over N months. |
| Latest Uruguayan dollar/economy headlines (Google News), de-duplicated, newest first. |
| AI market analysis (whole-market, or per-currency when |
Plus a prompt, analizar-dolar-hoy, that chains the tools into a one-shot Spanish summary of today's dollar market.
Rate convention: to buy a currency a house sells it to you (best = lowest
sell); to sell it a house buys from you (best = highestbuy). BCU and interbank quotes are excluded from market math.
Configuration
Env var | Purpose | Default |
|
|
|
| Port for the HTTP transport |
|
| Upstream cambio-uruguay API base |
|
Development
npm install
npm test # vitest — pure tool handlers
npm run build # tsc → dist
npm run dev # run from source (tsx)
npm run inspect # MCP Inspector against the source serverLicense
MIT — part of the open-source cambio-uruguay project.
Available Tools
7 toolsbest_houseBest exchange houseAInspect
The single best casa de cambio right now to buy or sell a currency. side='buy' means you buy the currency (best = lowest sell price); side='sell' means you sell it (best = highest buy price).
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | 'buy' = you buy the currency; 'sell' = you sell it | |
| currency | Yes | ISO currency code, e.g. USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it delivers non-obvious disclosure: the meaning of 'best' flips with side — lowest sell price when buying, highest buy price when selling. This prevents an agent from incorrectly assuming 'best' always means the lowest price. It also scopes the result temporally ('right now'), though it doesn't explicitly confirm read-only behavior or describe the result shape.
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 with zero redundancy. The purpose is front-loaded in the first sentence, and the clarifying side semantics follow immediately in the second. Every clause earns its place, and the key disambiguation is packed into minimal space.
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 2-parameter lookup tool with fully documented schema parameters, the description covers the essential decision rule and temporal scope. The main gap is the absence of an output schema and no hint about what the result contains (house name, rate, timestamp). Given the tool's simplicity, this is close to complete but not fully so.
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 100%, so both parameters are already documented, earning the baseline 3. The description adds genuine value beyond the schema by coupling each side value to its ranking rule (buy → lowest sell price; sell → highest buy price), which is the tool's core logic. Currency adds nothing beyond the schema's ISO note, but the side explanation justifies a 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 states a specific purpose: return the single best exchange house for buying or selling a currency, with 'right now' scoping it to current market conditions. 'The single best' implicitly separates it from siblings like list_houses and get_rates, though it doesn't name them explicitly. It stops short of a 5 because differentiation from siblings is implied rather than stated.
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 usage context is implied: use this when you want the one best casa de cambio for a given currency and side, rather than all houses or plain rates. The description gives no explicit when-to-use vs. when-not-to-use guidance and names no alternatives such as list_houses or get_rates. This meets the 'implied usage' level but nothing more.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convertConvert an amountAInspect
Convert an amount between currencies using the best available Uruguayan market rates. Foreign↔foreign routes through UYU (Uruguayan peso). Codes: USD, EUR, ARS, BRL, UYU, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target ISO code, e.g. UYU | |
| from | Yes | Source ISO code, e.g. USD | |
| amount | Yes | Amount to convert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose the non-obvious UYU routing and 'best available market rates'. However, it does not mention the return shape, whether the conversion is indicative or executable, or any error/edge-case 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 brief, front-loaded with the core purpose, and every sentence adds useful information. There is no redundant or filler 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 three-parameter conversion tool, the core invocation details are covered by the schema and description. The main gap is the absence of an output schema or stated return format, but the tool's purpose and routing behavior are sufficiently clear for an agent to call 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?
The input schema already describes all three parameters, so the baseline is 3. The description adds value by listing example accepted currency codes (USD, EUR, ARS, BRL, UYU), helping the agent construct valid from/to arguments.
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 a clear action and resource: 'Convert an amount between currencies' using Uruguayan market rates. It also gives a distinguishing behavioral detail (foreign↔foreign routes through UYU), though it does not explicitly contrast any sibling tool.
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 the tool (currency conversion with Uruguayan rates) but does not explicitly state when to prefer it over siblings like get_rates, nor any exclusions or prerequisites. Usage context is present but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
daily_summaryAI market summaryAInspect
AI-generated analysis of the Uruguayan exchange market. Without a currency, a whole-market summary; with one, a per-currency analysis. lang is es | en | pt.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language (default es) | |
| currency | No | Optional ISO code for a per-currency analysis, e.g. USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It states the output is 'AI-generated analysis,' implying synthesized narrative rather than raw data, and it exposes language options. It does not mention read-only semantics, data freshness, output format, or behavior when a requested currency has no data, so some behavioral gaps remain.
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 concise sentences with the core scope front-loaded. The conditional usage is compressed into one clear clause, and the language note is minimal. There is no filler or redundant phrasing.
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 two optional parameters and no output schema, the description captures the essential invocation modes and market scope. It does not specify the return format beyond 'analysis,' and 'daily' is implied by the name rather than described, so it is not fully exhaustive. Still, an agent can call it correctly without requiring additional information.
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 100%, so the baseline is 3. The description adds the conditional semantics of the currency parameter ('without... with...') and restates the lang values, but the schema already conveys the optional per-currency behavior and language choices. The added value beyond the schema is minimal.
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 'AI-generated analysis of the Uruguayan exchange market,' clearly identifying the deliverable and market scope. It further differentiates the tool through its conditional behavior: whole-market without currency, per-currency with one. The verb is implicit rather than explicit, but the purpose is not likely to be confused with sibling rate or news tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains how to switch between whole-market and per-currency modes: omit currency for a market summary, provide one for per-currency analysis. It also enumerates the allowed language values. However, it does not contrast this tool with siblings such as get_rates or get_evolution, leaving when to prefer raw rates or historical data to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evolutionGet rate historyAInspect
Historical rate series and statistics (min/max/avg/current/change) for a given exchange house (origin) and currency over the last N months. Use list_houses for valid origin ids.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Exchange house id, e.g. brou, itau, prex | |
| period | No | Months of history (default 6) | |
| currency | Yes | ISO currency code, e.g. USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose what the tool returns (series plus min/max/avg/current/change) and the time-window scope. It does not mention response ordering, error behavior, or whether any side effects exist, though the tool appears to be a read-only query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with no filler. The main function is front-loaded, and the list_houses pointer is a useful, concise addition. 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?
The description covers the core purpose, the key inputs, and the content of the returned result well enough for a simple history query. With no output schema, it would benefit from specifying the exact response structure or result ordering, but the omission of the period default is acceptable because the schema already documents 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 input schema already provides 100% coverage with descriptions for all three parameters. The description adds value by clarifying that origin refers to an exchange house and by pointing to list_houses for valid origin IDs. It also reinforces that period maps to 'last N months', supplementing rather than repeating 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 identifies the tool's purpose: returning historical rate series and statistics for a given exchange house and currency over a time period. The phrase 'historical rate series and statistics (min/max/avg/current/change)' distinguishes it from a simple current-rate lookup, though it does not explicitly name sibling alternatives like get_rates.
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 clear context for when to use the tool: when historical rate data and summary statistics for a specific origin and currency are needed. It also gives a practical prerequisite by recommending list_houses for valid origin IDs. It does not, however, explicitly state when not to use this tool or compare it with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsGet market newsAInspect
Latest Uruguayan dollar/economy headlines (Google News), de-duplicated and newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max headlines (default 12) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It goes beyond a simple verb+object by revealing two useful behaviors: results are de-duplicated and sorted newest-first, and the source is Google News. It does not mention pagination, rate limits, or output format, but for a simple read-only news tool this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that immediately communicates the source, scope, and ordering behavior. Every phrase carries meaning and there is no redundant or filler 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?
Given the tool's simplicity—one optional parameter, no nested objects, no output schema—the description gives an agent enough context to call it correctly. It names the resource, the source, and the processing guarantees, which is complete for this use case.
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 input schema has 100% description coverage for the only parameter, 'limit', including its default and maximum. The description adds no parameter-specific details, but none are needed because the schema already fully explains the parameter.
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 names a specific resource ('Uruguayan dollar/economy headlines'), a clear source ('Google News'), and key processing behavior ('de-duplicated and newest first'). This clearly distinguishes it from the sibling tools like get_rates or list_houses, which address different domains.
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 phrase 'Latest ... headlines' implies the tool should be used when current market news is needed, and the scope is clearly Uruguayan. However, there is no explicit guidance about when not to use it or which sibling tool to choose instead, leaving the agent to infer selection from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ratesGet exchange ratesAInspect
Current buy/sell rates for a currency across Uruguayan exchange houses (casas de cambio): market average, best buy/sell house, lowest spread, and the full per-house list. Excludes BCU and interbank quotes. Currency is an ISO code like USD, EUR, ARS, BRL.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | ISO currency code, e.g. USD, EUR, ARS, BRL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by stating exactly what the tool returns and explicitly what it excludes (BCU and interbank quotes), giving a clear model of the tool's behavior. It does not mention error handling, side effects, or data freshness, but the query-like nature and detailed output list provide solid transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, opening with the core deliverable and then adding currency format and exclusions in the second sentence. Every clause adds value, with no redundancy or filler.
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 one-parameter tool with no output schema and no annotations, the description is quite complete: it enumerates the included data items (average, best house, spread, full list) and states exclusions. Minor gaps like output format or behavior on unsupported currencies are acceptable given the low complexity and the level of detail already present.
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 100%: the schema already documents the currency parameter as an ISO code with examples. The description repeats the same examples (USD, EUR, ARS, BRL) and adds no parameter-level meaning beyond what the schema provides, which meets the high-coverage baseline of 3.
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 operation: retrieving current buy/sell rates for a currency across Uruguayan exchange houses, and enumerates the specific outputs (market average, best buy/sell house, lowest spread, full per-house list). It also distinguishes itself by explicitly excluding BCU and interbank quotes, making it easy to differentiate from sibling tools like best_house or convert.
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 the tool by stating it provides current rates for a currency and lists what data is returned, but it does not explicitly mention sibling alternatives or provide when-to-use versus when-not-to-use guidance. The exclusion of BCU and interbank quotes gives some scope context, but not enough to route an agent away from potentially overlapping tools like best_house or daily_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_housesList exchange housesAInspect
All Uruguayan exchange houses (casas de cambio) tracked, with display name, website, and departments served.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It clearly signals a read-only listing operation and discloses the scope ('all ... tracked') and included fields. It does not mention ordering, pagination, or output format, but for a simple zero-parameter list this is acceptable.
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 entire description is one efficient, front-loaded sentence. It packs the geographic scope, the Spanish-language alias, and the returned fields into minimal space with no filler.
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 listing tool with no annotations or output schema, this description is nearly complete: it names the resource, scope, and return attributes. A minor gap is that 'departments served' is slightly ambiguous without clarifying that these are Uruguayan departments.
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 does not need to explain parameter meaning. The baseline for zero parameters is 4, and the description adds useful context about what the returned data contains.
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 ('list') and a precise resource ('all Uruguayan exchange houses'), and enumerates the returned attributes: display name, website, and departments served. This makes the tool's role clear and distinguishes it from sibling tools focused on rates, conversion, evolution, news, and summaries.
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 intended use is implied: call this to get a directory of exchange houses and their basic contact/coverage information. However, there is no explicit guidance about when not to use it or how it relates to siblings such as get_rates or best_house.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.1.1- First observed
best_house - First observed
convert - First observed
daily_summary - First observed
get_evolution - First observed
get_news - First observed
get_rates - First observed
list_houses
TDQS
get_rates and best_house overlap because get_rates already provides the best buy/sell house and the full per-house list, making best_house a subset rather than a clearly distinct tool. The other tools are well separated by current rates, historical data, conversion, news, and summary.
Most tool names follow a get_/list_ + noun snake_case pattern, but best_house, convert, and daily_summary deviate from that verb-prefix convention. The naming is still readable, consistent in casing, and easy to infer.
Seven tools is well-scoped for a Uruguayan exchange-rate domain, covering rates, best house, conversion, house list, history, news, and summary. Each tool earns its place without excessive fragmentation.
Core workflows are covered: current rates, best house, conversion, exchange house reference data, historical series, news, and daily analysis. Minor gaps such as market-level historical averages or multi-currency batch rates would need workarounds, but they do not block the main use cases.
Maintenance
Related MCP Connectors
Real-time Argentine open data: dollar rates, BCRA, INDEC, AFIP, INFOLEG, SEPA prices. 24+ tools.
Live Argentina data: dolar rates, quiniela and lotteries, holidays, river levels, inflation, news.
Free, keyless real-time currency conversion and exchange rates for any currency pair.
Read-only developer, date, finance, and text utilities. Authless remote MCP server by Clean.tools.
Related MCP Servers
- AlicenseAqualityCmaintenanceReal-time Argentine exchange rates for AI agents. Dollar blue, oficial, MEP, CCL, crypto rates plus currency conversion and spread calculator.6195MIT
- AlicenseAqualityAmaintenanceReal-time currency exchange rates for 160+ currencies from Reuters/Refinitiv. 4 tools, stdio transport.41272MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for querying real-time Argentine economic data, including dollar exchange rates, inflation, country risk, foreign currencies, and more.MIT
- AlicenseNot gradedqualityAmaintenanceReal-time US-equity quotes, company fundamentals, earnings, analyst trends, and financial news via Finnhub. Supports STDIO and Streamable HTTP transports.1001Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eduair94/cambio-uruguay'
If you have feedback or need assistance with the MCP directory API, please join our Discord server