Skip to main content
Glama
abixaiprin

tasas-ve-mcp

by abixaiprin

tasas-ve-mcp

Venezuelan exchange rates for your AI assistant, in one line. Official BCV rate (USD, EUR) and the USDT P2P market reference, as an MCP server, a CLI and a Python library.

tests license python

English · Español

Example conversation (illustrative figures):

You: How much is 250 dollars in bolívares today? Claude: At today's BCV official rate (Bs 36.59 per USD, 2 Nov 2026), USD 250 = Bs 9,146.85. The USDT P2P reference is Bs 50.20, a 37 % gap.

Why

  • Your assistant stops guessing. LLMs don't know today's rate; this gives it the real number with source and timestamp.

  • Fast and cheap. One small tool call, maths done locally — no long prompts, no scraping by the model, minimal tokens.

  • Keeps working when the source is down. The last known value is cached on disk and returned with a warning.

Related MCP server: Economía Venezuela MCP

Quick start

Requires uv (or pip install git+https://github.com/abixaiprin/tasas-ve-mcp).

VS Code — .vscode/mcp.json

{ "servers": { "tasas-ve": { "command": "uvx", "args": ["--from", "git+https://github.com/abixaiprin/tasas-ve-mcp", "tasas-ve-mcp"] } } }

Claude Desktop / Cursor — MCP config

{ "mcpServers": { "tasas-ve": { "command": "uvx", "args": ["--from", "git+https://github.com/abixaiprin/tasas-ve-mcp", "tasas-ve-mcp"] } } }

Terminal

uvx --from git+https://github.com/abixaiprin/tasas-ve-mcp tasas-ve            # BCV + P2P rates
uvx --from git+https://github.com/abixaiprin/tasas-ve-mcp tasas-ve 100 USD VES
uvx --from git+https://github.com/abixaiprin/tasas-ve-mcp tasas-ve 5000 VES USD --p2p

Python

from tasas_ve import Servicio
s = Servicio()
s.convertir(100, "USD", "VES")      # {'resultado': 3658.74, 'tasa_usada': 36.5874, ...}

Use it from any app (React, Vue, Java, PHP…)

Run it as a small web service and call it over HTTP. It also exposes remote MCP at /mcp.

uvx --from git+https://github.com/abixaiprin/tasas-ve-mcp tasas-ve-mcp --http --port 8000

Endpoint

Example

GET /api/tasas

BCV + P2P rates

GET /api/convertir

/api/convertir?monto=100&de=USD&a=VES&fuente=bcv

GET /salud

health check

React / Vue / any JS

const r = await fetch("https://YOUR-SERVICE/api/convertir?monto=100&de=USD&a=VES");
const { resultado, tasa_usada } = await r.json();

Java

var res = HttpClient.newHttpClient().send(
  HttpRequest.newBuilder(URI.create("https://YOUR-SERVICE/api/tasas")).build(),
  HttpResponse.BodyHandlers.ofString());

Deploy for free: the repo includes render.yaml — on Render choose New → Blueprint and pick this repo.

Tools

Tool

What it does

tasa_bcv

Official BCV rate: Bs per 1 USD and 1 EUR

tasa_p2p

USDT/VES market reference (median of P2P ads, SELL or BUY)

convertir

Converts between VES, USD, EUR and USDT using bcv or p2p

brecha_cambiaria

Gap (%) between the official rate and the P2P reference

For teams and companies

  • One source of truth for the rate. Your apps, spreadsheets and AI assistants read the same number, with source and timestamp — no more copying it by hand every morning.

  • Plug it into what you already use: Claude, Cursor or VS Code via MCP; React, Vue, Java or PHP via the REST API.

  • Self-hosted and auditable. It's open source, it only reads public pages and it sends no data about your company.

  • Resilient. If the source goes down, your systems keep the last known value instead of breaking.

Cost & performance

Tokens per question

one tool call + a ~200-byte JSON answer

Cache

BCV 30 min · P2P 3 min · last value saved to ~/.cache/tasas-ve/

Network

Only public pages; nothing is sent about you

How it works

flowchart LR
  A[AI assistant] -->|MCP tool call| B[tasas-ve-mcp]
  B --> C{Cache fresh?}
  C -- yes --> A
  C -- no --> D[BCV website / P2P ads]
  D --> E[(Last known value)]
  E --> A

Data sources and disclaimer

  • BCV: public website bcv.org.ve. If its TLS certificate can't be verified, the answer says so.

  • P2P: public Binance P2P ad listing. It is a market reference, not an official rate. Not affiliated with BCV or Binance.

  • Rates are informative. Check the official source before any legal or accounting use.

Roadmap

  • Rate history and daily average

  • More sources (other P2P platforms, parallel references)

  • REST API and a widget for websites

  • Other countries

Ideas? Open a discussion.

Contributing

git clone https://github.com/abixaiprin/tasas-ve-mcp && cd tasas-ve-mcp
pip install -e ".[dev]" && pytest

Need this for your business?

I adapt tools like this to your company: integrations with your systems, payment flows, AI assistants and support. → dev-abixai.netlify.app · dev.abixai.martinez@gmail.com

Support

If this saved you time:

  • ⭐ Star the repo — it helps other developers find it.

  • ☕ Buy me a coffee on Ko-fi — keeps new tools coming.

  • 🔁 Share it with a team that still copies the rate by hand.

License

MIT © 2026 Abixai Prin. You can use, modify and share it; keep the copyright notice.


Available Tools

4 tools
brecha_cambiariaB

Diferencia porcentual entre la tasa oficial BCV del dólar y la referencia USDT P2P.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, yet it discloses nothing about sign convention, units, data freshness, or whether a failure in either underlying source degrades the result. For a computed/derived endpoint with zero annotation coverage this is a meaningful gap.

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

Conciseness5/5

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

A single well-formed sentence with no filler, and the defining concept (percentage difference between the two named rates) is front-loaded. Nothing is wasted.

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

Completeness3/5

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

With no output schema, no annotations, and no parameters, the description is the only documentation and it omits the return shape (a bare percentage, a signed number, an object with both rates). It identifies the metric but does not fully equip an agent to interpret the response.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. The description correctly implies the call needs no arguments.

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

Purpose4/5

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

Names a specific derived metric (percentage gap between the official BCV dollar rate and the USDT P2P reference), which is clear enough that an agent can tell it apart from tasa_bcv and tasa_p2p, which supply the individual rates. It does not explicitly state the relationship to those siblings, so it falls short of full differentiation.

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

Usage Guidelines2/5

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

The description is purely definitional: it says what the metric is, never when to call it instead of tasa_bcv, tasa_p2p, or convertir. There is no explicit or even clearly implied routing guidance, leaving the agent to infer that this is the comparison tool.

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

convertirB

Convierte un monto entre VES, USD, EUR y USDT. fuente='bcv' (oficial) o 'p2p' (mercado).

NameRequiredDescriptionDefault
aYes
deYes
montoYes
fuenteNobcv

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It never says whether the tool fetches live rates (network call) or computes from a cached rate, whether it is read-only/side-effect free, how fresh the rate is, or what happens with unsupported currency codes — significant gaps for an unannotated tool.

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

Conciseness4/5

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

Two compact sentences with no filler, front-loaded with the core action and followed by the source qualifier. Slightly too terse given the ambiguity it leaves, but nothing is wasted.

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

Completeness2/5

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

With no annotations, no output schema, and 0% schema description coverage across 4 parameters, the description should explain what the result looks like (converted amount? rate used?) and behavior on invalid currencies. It does neither, leaving the agent unable to fully predict the call.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It usefully names the accepted currency set for 'de'/'a' (though not that they are the from/to direction) and documents 'fuente' with its two values and default 'bcv'. That is partial coverage; 'monto' is only implied and directionality of de/a is left ambiguous.

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

Purpose4/5

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

States a specific verb ('Convierte') and resource ('un monto entre VES, USD, EUR y USDT'), so an agent knows this is a currency-conversion tool. It does not, however, distinguish itself from the siblings tasa_bcv/tasa_p2p/brecha_cambiaria, which also deal with rates but are not mentioned.

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

Usage Guidelines3/5

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

The two fuente values ('bcv' oficial vs 'p2p' mercado) give a hint about which source variant to pick when converting. But there is no explicit when-to-use guidance versus the sibling rate tools, and no statement of prerequisites or error conditions.

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

tasa_bcvA

Tasa oficial del Banco Central de Venezuela: bolívares por 1 USD y por 1 EUR.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It discloses the source (BCV) and unit semantics, which is useful, but does not state freshness, authentication needs, whether it is read-only, or error behavior. For a zero-parameter rate lookup this is minimally adequate but has clear gaps.

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

Conciseness5/5

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

A single, front-loaded sentence that states the source, resource, and unit of return. Every element earns its place with no filler.

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

Completeness4/5

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

For a simple zero-parameter rate-fetching tool with no output schema, the description sufficiently explains what is returned: official BCV rates in bolívares per USD and EUR. It could add freshness or usage context, but the core call semantics are complete.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description appropriately does not invent parameter details, and the USD/EUR mention clarifies the implicit scope of the lookup.

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

Purpose4/5

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

The description clearly identifies the resource as the official BCV exchange rate and specifies the output units: bolívares per 1 USD and per 1 EUR. It distinguishes itself from tasa_p2p by emphasizing 'oficial' and 'Banco Central de Venezuela', though it does not explicitly name or route against siblings.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus tasa_p2p, convertir, or brecha_cambiaria. The official-source framing implies a use case, but the definition leaves the agent to infer selection criteria.

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

tasa_p2pB

Referencia de mercado USDT/VES: mediana de anuncios P2P. lado='SELL' (venta) o 'BUY' (compra). No es oficial.

NameRequiredDescriptionDefault
ladoNoSELL

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description does carry the provenance burden and does well on it: it discloses the data source (median of P2P ads) and its non-official reliability caveat. It says nothing about freshness/snapshot timing, caching, or failure behavior when there are too few ads, which matters for a rate tool.

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

Conciseness4/5

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

Two telegraphic sentences, front-loaded with the resource and computation, followed by the parameter values and the non-official caveat. Nothing is wasted, though the clipped style borders on underspecification.

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

Completeness3/5

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

One optional parameter and no output schema or annotations, so the description is nearly sufficient, but it never indicates what is returned (a single rate value? a timestamp? ad counts?) or how stale the median may be — both relevant for a market-rate lookup.

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

Parameters3/5

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

Schema coverage is 0% and there is no enum, so the description must carry the parameter — it does explain lado='SELL' (venta) vs 'BUY' (compra). However, it does not resolve the key ambiguity of whether SELL means the rate obtained when selling USDT or the side of the ad book being read.

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

Purpose4/5

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

States a specific resource and computation: a USDT/VES market reference derived from the median of P2P listings. The closing 'No es oficial' implicitly contrasts it with the official-rate sibling (tasa_bcv), but the differentiation is only implied rather than naming the sibling.

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

Usage Guidelines3/5

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

The description tells the agent what the value represents and flags that it is non-official, which hints at when to prefer it over an official rate, but it never explicitly says when to use this versus tasa_bcv, convertir, or brecha_cambiaria.

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.

  1. 4 tool updatesv0.1.0
    • First observedbrecha_cambiaria
    • First observedconvertir
    • First observedtasa_bcv
    • First observedtasa_p2p

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct concept: official BCV rate, P2P market reference, amount conversion, and the percentage gap between them. The `convertir` tool's `fuente` parameter could superficially be confused with `tasa_bcv`/`tasa_p2p`, but the descriptions make clear it performs conversion rather than rate lookup. No two tools do the same thing.

Naming Consistency4/5

All names are lowercase snake_case, which is consistent, but the grammatical style is mixed: `tasa_bcv`/`tasa_p2p` are noun phrases, `convertir` is a bare verb, and `brecha_cambiaria` is another noun phrase. It reads fine in Spanish and each name is still self-explanatory, so this is a minor deviation rather than a real inconsistency.

Tool Count5/5

Four tools is a tight, well-scoped surface for a narrow domain (Venezuelan exchange rates). Every tool earns its place: two rate sources, one conversion utility, one derived metric, with no redundant or filler entries.

Completeness4/5

The surface covers the core lifecycle: fetch official rate, fetch market rate, convert between all four currencies, and compute the gap. The main gap is historical/time-series data (no date parameter), so an agent cannot retrieve past rates, but all current-state workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to real-time currency exchange rates, live stock market data via Alpha Vantage, and local transaction analysis from CSV databases. It enables AI assistants to perform currency conversions, stock comparisons, and budget tracking through natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time Venezuelan economic data, including official and parallel exchange rates, inflation statistics, and basic goods basket prices. It enables AI assistants to query historical economic trends and current market indicators via natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time Argentine dollar exchange rates to Claude, including blue, official, MEP, CCL, crypto, and other rates. Enables automatic currency conversions for budgets, price comparisons, and financial analysis in pesos and dollars.
    3 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and converting currencies, stocks, crypto, ETFs, and funds with current rates and source freshness for AI agents.
    3
    MIT