gateway
Governed AI actions with signed, verifiable receipts: free keyless reads, human-approved writes.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (11)
- HIGH
- LOWen delta__boardingpass_show
- LOWen maps__eta_share
- LOWen uber__fare_estimate
- LOWen wallet__boardingpass_show
- LOWen duvera__dev_stackoverflow_search
- LOWen duvera__reference_public_holidays
- LOWen googlecalendar__availability_find
- INFOen duvera__news_search
- INFOen duvera__news_top_stories
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"gateway": {
"url": "https://app.duvera.ai/mcp"
}
}
}Puntos de conexión remotos
https://app.duvera.ai/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (52)
⚪amazon__package_track(order_id)
[amazon · risk:low] Look up the delivery status of an Amazon order (read-only)
Esquema de entrada
{
"type": "object",
"properties": {
"order_id": {
"description": "The order or tracking id to look up (defaults to most recent)",
"type": "string"
}
},
"required": []
}🟢applehealth__heart_rate_read(end, start)
[applehealth · risk:medium] Read heart-rate data from Apple Health
Esquema de entrada
{
"type": "object",
"properties": {
"end": {
"description": "ISO-8601 end of the query window (defaults to now)",
"type": "string"
},
"start": {
"description": "ISO-8601 start of the query window (defaults to today)",
"type": "string"
}
},
"required": []
}🟢applehealth__sleep_read(end, start)
[applehealth · risk:medium] Read sleep-analysis data from Apple Health
Esquema de entrada
{
"type": "object",
"properties": {
"end": {
"description": "ISO-8601 end of the query window (defaults to now)",
"type": "string"
},
"start": {
"description": "ISO-8601 start of the query window (defaults to last night)",
"type": "string"
}
},
"required": []
}🟢applehealth__steps_read(end, start)
[applehealth · risk:medium] Read step-count data from Apple Health
Esquema de entrada
{
"type": "object",
"properties": {
"end": {
"description": "ISO-8601 end of the query window (defaults to now)",
"type": "string"
},
"start": {
"description": "ISO-8601 start of the query window (defaults to today)",
"type": "string"
}
},
"required": []
}🟢bluesky__trending_get
[bluesky · risk:low] Fetch the current trending topics on Bluesky. Returns topic names, display labels, and links to the topic feed. No account or API key required.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢chase__balance_check(account)
[chase · risk:low] Read the current balance of a Chase account (read-only)
Esquema de entrada
{
"type": "object",
"properties": {
"account": {
"description": "The Chase account to check (defaults to primary)",
"type": "string"
}
},
"required": []
}🟢datadog__logs_view(from, query, to)
[datadog · risk:low] Search and read logs from Datadog over a time range
Esquema de entrada
{
"type": "object",
"properties": {
"from": {
"description": "Start of the time range (ISO 8601 or relative)",
"type": "string"
},
"query": {
"description": "Datadog log search query",
"type": "string"
},
"to": {
"description": "End of the time range (ISO 8601 or relative)",
"type": "string"
}
},
"required": [
"query"
]
}🟢delta__boardingpass_show(confirmation_code, passenger)
[delta · risk:low] Pull up the boarding pass for a Delta flight
Esquema de entrada
{
"type": "object",
"properties": {
"confirmation_code": {
"description": "Booking confirmation code",
"type": "string"
},
"passenger": {
"description": "Passenger last name",
"type": "string"
}
},
"required": [
"confirmation_code"
]
}⚪duvera__dev_npm_package(package)
[duvera · risk:low] Look up the latest version, description, license, and dependencies of an npm package. Works for scoped packages too (e.g. "@types/node"). No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"package": {
"description": "npm package name, e.g. \"express\" or \"@types/node\".",
"type": "string"
}
},
"required": [
"package"
]
}⚪duvera__dev_pypi_package(package)
[duvera · risk:low] Look up the current version, summary, license, and homepage of a Python package on PyPI. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"package": {
"description": "PyPI package name, e.g. \"requests\" or \"fastapi\".",
"type": "string"
}
},
"required": [
"package"
]
}🟢duvera__dev_stackoverflow_search(query)
[duvera · risk:low] Search Stack Overflow questions by keyword. Returns top 5 by relevance with title, link, score, and answer status. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search terms, e.g. \"goroutine leak detection\" or \"pandas merge on index\".",
"type": "string"
}
},
"required": [
"query"
]
}🟢duvera__finance_crypto_price(ids, vs_currencies)
[duvera · risk:low] Current spot price for one or more cryptocurrencies (CoinGecko ids like "bitcoin,ethereum,solana") in a fiat currency (default USD). Read-only market data. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"ids": {
"description": "Comma-separated CoinGecko coin ids, e.g. \"bitcoin\" or \"bitcoin,ethereum,solana\".",
"type": "string"
},
"vs_currencies": {
"description": "Comma-separated fiat/quote currencies (default \"usd\"), e.g. \"usd,eur\".",
"type": "string"
}
},
"required": [
"ids"
]
}🟢duvera__finance_exchange_rates
[duvera · risk:low] Live USD exchange rates against major currencies. Read-only, no account required.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢duvera__food_recipe_search(query)
[duvera · risk:low] Search recipes by dish name (e.g. "arrabiata", "pad thai"). Returns ingredients, instructions, category, and cuisine. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Dish name to search for, e.g. \"carbonara\".",
"type": "string"
}
},
"required": [
"query"
]
}🟢duvera__food_restaurant_search(query)
[duvera · risk:low] Search for restaurants and food places by name or location using OpenStreetMap. Read-only, no account required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query, e.g. \"pizza in San Francisco\" or \"sushi near me\".",
"type": "string"
}
},
"required": [
"query"
]
}⚪duvera__geo_geocode(query)
[duvera · risk:low] Convert a city or place name (e.g. "Berlin", "San Francisco") to latitude/longitude, country, timezone, and population. Use this before weather.current or weather.air-quality when you only have a place name. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Place name to look up, e.g. \"Berlin\" or \"Springfield, Illinois\".",
"type": "string"
}
},
"required": [
"query"
]
}🟡duvera__github_latest_release(owner, repo)
[duvera · risk:low] Get the latest published release (tag, name, notes, date) of a public GitHub repository. Returns 404 for repos that publish no releases. No auth required.
Esquema de entrada
{
"type": "object",
"properties": {
"owner": {
"description": "Repository owner, e.g. \"expressjs\".",
"type": "string"
},
"repo": {
"description": "Repository name, e.g. \"express\".",
"type": "string"
}
},
"required": [
"owner",
"repo"
]
}🟢duvera__github_read_file(owner, path, repo)
[duvera · risk:low] Read a file from a public GitHub repository. Read-only.
Esquema de entrada
{
"type": "object",
"properties": {
"owner": {
"description": "Repository owner (username or org), e.g. \"octocat\".",
"type": "string"
},
"path": {
"description": "File path within the repository, e.g. \"README.md\". Defaults to README.md.",
"type": "string"
},
"repo": {
"description": "Repository name, e.g. \"Hello-World\".",
"type": "string"
}
},
"required": [
"owner",
"repo"
]
}🟢duvera__github_search_repos(query)
[duvera · risk:low] Search public GitHub repositories by keyword. Returns top 5 results by stars. No auth required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query (e.g. \"machine learning python\", \"react component library\").",
"type": "string"
}
},
"required": [
"query"
]
}🟢duvera__news_search(query)
[duvera · risk:low] Search Hacker News stories by keyword, ranked by relevance. Returns title, URL, points, author, and comment count. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search terms, e.g. \"model context protocol\" or \"postgres performance\".",
"type": "string"
}
},
"required": [
"query"
]
}🟢duvera__news_top_stories
[duvera · risk:low] Top stories from Hacker News. Read-only, no account required.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}⚪duvera__reference_dictionary(word)
[duvera · risk:low] Definitions, phonetics, part of speech, and examples for an English word. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"word": {
"description": "English word to define, e.g. \"governance\".",
"type": "string"
}
},
"required": [
"word"
]
}⚪duvera__reference_public_holidays(country, year)
[duvera · risk:low] Public holidays for a given year and ISO country code (e.g. 2026 + "US"). Includes national and regional holidays with dates and names. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code, e.g. \"US\", \"DE\", \"JP\".",
"type": "string"
},
"year": {
"description": "Calendar year, e.g. 2026.",
"type": "number"
}
},
"required": [
"year",
"country"
]
}⚪duvera__time_now(timezone)
[duvera · risk:low] Current date and time in an IANA timezone (e.g. "America/New_York", "Asia/Tokyo"). Includes day of week and DST status. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"timezone": {
"description": "IANA timezone name, e.g. \"America/New_York\", \"Europe/Berlin\", \"Asia/Tokyo\".",
"type": "string"
}
},
"required": [
"timezone"
]
}🟢duvera__travel_flight_search(latitude, longitude, radius_nm)
[duvera · risk:low] List aircraft currently airborne within a radius of a point (adsb.lol ADS-B data). Use geo.geocode to get a city's coordinates first. Returns callsign, altitude, speed, and position. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"description": "Latitude of the search center (e.g. 40.64 for JFK).",
"type": "number"
},
"longitude": {
"description": "Longitude of the search center (e.g. -73.78 for JFK).",
"type": "number"
},
"radius_nm": {
"description": "Search radius in nautical miles (1-250), e.g. 50.",
"type": "number"
}
},
"required": [
"latitude",
"longitude",
"radius_nm"
]
}⚪duvera__weather_air_quality(latitude, longitude)
[duvera · risk:low] Current air quality (US AQI, PM2.5, PM10, ozone) for a latitude/longitude. Use geo.geocode first if you only have a place name. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"description": "Latitude of the location (e.g. 37.77 for San Francisco).",
"type": "number"
},
"longitude": {
"description": "Longitude of the location (e.g. -122.42 for San Francisco).",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
]
}⚪duvera__weather_current(latitude, longitude)
[duvera · risk:low] Current temperature, conditions, wind, and humidity for a latitude/longitude (Open-Meteo). Use geo.geocode first if you only have a city or place name. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"description": "Latitude of the location (e.g. 37.77 for San Francisco).",
"type": "number"
},
"longitude": {
"description": "Longitude of the location (e.g. -122.42 for San Francisco).",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
]
}🟢duvera__wiki_search(query)
[duvera · risk:low] Search Wikipedia articles by keyword. Returns matching page titles, keys, and excerpts. Pass a result's key to wiki.summary for the article summary. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search terms, e.g. \"zero trust architecture\" or \"Ada Lovelace\".",
"type": "string"
}
},
"required": [
"query"
]
}🟢duvera__wiki_summary(title)
[duvera · risk:low] Get the lead summary of a Wikipedia article by title (e.g. "Zero_trust_architecture"). Use wiki.search first to find the exact page key. No account required.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"description": "Article title or page key, e.g. \"Ada Lovelace\" or \"Zero_trust_architecture\" (from wiki.search results).",
"type": "string"
}
},
"required": [
"title"
]
}🟢gmail__mail_read(label)
[gmail · risk:low] Read recent emails from the Gmail inbox
Esquema de entrada
{
"type": "object",
"properties": {
"label": {
"description": "Optional label/folder to read from (defaults to INBOX)",
"type": "string"
}
},
"required": []
}🟢google_workspace__mail_search(query)
[google-workspace · risk:low] Search Mail via Gmail, governed by Duvera.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query, e.g. 'invoices from Acme last month'.",
"type": "string"
}
},
"required": [
"query"
]
}🟢googlecalendar__availability_find(duration_minutes, end, start)
[googlecalendar · risk:low] Find open time slots within a date range in Google Calendar
Esquema de entrada
{
"type": "object",
"properties": {
"duration_minutes": {
"description": "Desired slot length in minutes",
"type": "number"
},
"end": {
"description": "End of the search window in ISO 8601 format",
"type": "string"
},
"start": {
"description": "Start of the search window in ISO 8601 format",
"type": "string"
}
},
"required": [
"start",
"end"
]
}🟢grubhub__order_track(order_id)
[grubhub · risk:low] Check the live status and ETA of a Grubhub order
Esquema de entrada
{
"type": "object",
"properties": {
"order_id": {
"description": "Identifier of the order to track",
"type": "string"
}
},
"required": [
"order_id"
]
}🟢hackernews__stories_top
[hackernews · risk:low] Fetch the current list of top-story ids on Hacker News. Returns an array of item ids (resolve details via the item endpoint). No account or API key required; the hacker-news.firebaseio.com endpoint is open and unmetered.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢instacart__menu_search(query, store)
[instacart · risk:low] Search for grocery items and stores in the Instacart app
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search terms, e.g. \"organic bananas\"",
"type": "string"
},
"store": {
"description": "Store name or id to scope the search",
"type": "string"
}
},
"required": [
"query"
]
}⚪maps__eta_share(contact, destination)
[maps · risk:low] Share your estimated time of arrival with a contact from Apple Maps
Esquema de entrada
{
"type": "object",
"properties": {
"contact": {
"description": "Contact name or number to share ETA with",
"type": "string"
},
"destination": {
"description": "Destination address or place name for the active trip",
"type": "string"
}
},
"required": [
"contact"
]
}🟢microsoft365__calendar_list(range)
[microsoft365 · risk:low] List Calendar via Outlook Calendar, governed by Duvera.
Esquema de entrada
{
"type": "object",
"properties": {
"range": {
"description": "Date range, e.g. 'this week'.",
"type": "string"
}
},
"required": []
}🟢microsoft365__mail_search(query)
[microsoft365 · risk:low] Search Mail via Outlook / Exchange, governed by Duvera.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query, e.g. 'invoices from Acme last month'.",
"type": "string"
}
},
"required": [
"query"
]
}🟢notion__notes_search(query)
[notion · risk:low] Search pages and notes in Notion by query
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query string",
"type": "string"
}
},
"required": [
"query"
]
}🟢obsidian__notes_search(query)
[obsidian · risk:low] Search notes in an Obsidian vault by query
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query string",
"type": "string"
}
},
"required": [
"query"
]
}⚪open_meteo__weather_forecast(latitude, longitude)
[open-meteo · risk:low] Current temperature, conditions, humidity, and wind for a latitude/longitude, from Open-Meteo.
Esquema de entrada
{
"type": "object",
"properties": {
"latitude": {
"description": "Latitude of the place (e.g. 37.77 for San Francisco).",
"type": "number"
},
"longitude": {
"description": "Longitude of the place (e.g. -122.42 for San Francisco).",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
]
}🟢opensky__flights_live(lamax, lamin, lomax, lomin)
[opensky · risk:low] List aircraft currently airborne within a latitude/longitude box, from OpenSky's live ADS-B feed.
Esquema de entrada
{
"type": "object",
"properties": {
"lamax": {
"description": "North edge of the box — maximum latitude (e.g. 40.9 for NYC).",
"type": "number"
},
"lamin": {
"description": "South edge of the box — minimum latitude (e.g. 40.6 for NYC).",
"type": "number"
},
"lomax": {
"description": "East edge of the box — maximum longitude (e.g. -73.7 for NYC).",
"type": "number"
},
"lomin": {
"description": "West edge of the box — minimum longitude (e.g. -74.1 for NYC).",
"type": "number"
}
},
"required": [
"lamin",
"lomin",
"lamax",
"lomax"
]
}🟢postgres__sql_read(database, query)
[postgres · risk:low] Execute a read-only SQL query against a Postgres database
Esquema de entrada
{
"type": "object",
"properties": {
"database": {
"description": "Target database name",
"type": "string"
},
"query": {
"description": "Read-only SQL query (SELECT) to execute",
"type": "string"
}
},
"required": [
"database",
"query"
]
}⚪shazam__audio_identify(duration_ms)
[shazam · risk:low] Identify the song currently playing using Shazam
Esquema de entrada
{
"type": "object",
"properties": {
"duration_ms": {
"description": "How long to listen before identifying, in milliseconds",
"type": "number"
}
},
"required": []
}🟢slack__message_search(query)
[slack · risk:low] Search recent messages across Slack channels
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Search query string",
"type": "string"
}
},
"required": [
"query"
]
}🟢southwest__flight_status(date, flight_number)
[southwest · risk:low] Check the status of a Southwest flight
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"description": "Flight date (YYYY-MM-DD)",
"type": "string"
},
"flight_number": {
"description": "Flight number, e.g. WN1234",
"type": "string"
}
},
"required": [
"flight_number"
]
}🟢telegram__message_read(chat)
[telegram · risk:low] Read recent messages from a Telegram chat
Esquema de entrada
{
"type": "object",
"properties": {
"chat": {
"description": "Chat id or @username to read from",
"type": "string"
}
},
"required": [
"chat"
]
}🟢twitter__tweets_search(max_results, query)
[twitter · risk:low] Search for recent tweets matching a keyword, hashtag, or phrase using the Twitter v2 API. Pass your Twitter Bearer Token via X-Duvera-Service-Token header — Duvera never stores it. Get a free Bearer Token at developer.twitter.com.
Esquema de entrada
{
"type": "object",
"properties": {
"max_results": {
"description": "Number of tweets to return (10-100, default 10).",
"type": "number"
},
"query": {
"description": "Twitter search query. Supports operators like \"from:user\", \"#hashtag\", \"-word\".",
"type": "string"
}
},
"required": [
"query"
]
}⚪uber__fare_estimate(destination, pickup, product)
[uber · risk:low] Estimate the fare for a trip in the Uber app
Esquema de entrada
{
"type": "object",
"properties": {
"destination": {
"description": "Drop-off address or place name",
"type": "string"
},
"pickup": {
"description": "Pickup address (defaults to current location)",
"type": "string"
},
"product": {
"description": "Ride product, e.g. UberX, Comfort, Black",
"type": "string"
}
},
"required": [
"destination"
]
}🟢united__flight_status(date, flight_number)
[united · risk:low] Check the status of a United flight
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"description": "Flight date (YYYY-MM-DD)",
"type": "string"
},
"flight_number": {
"description": "Flight number, e.g. UA123",
"type": "string"
}
},
"required": [
"flight_number"
]
}⚪venmo__payment_request(amount_cents, note, recipient)
[venmo · risk:low] Request a payment from a contact via Venmo (no money leaves your account)
Esquema de entrada
{
"type": "object",
"properties": {
"amount_cents": {
"description": "Amount being requested, in cents",
"type": "number"
},
"note": {
"description": "Optional note explaining the request",
"type": "string"
},
"recipient": {
"description": "The Venmo handle, phone, or contact to request from",
"type": "string"
}
},
"required": [
"recipient",
"amount_cents"
]
}🟢wallet__boardingpass_show(flight_number, pass_name)
[wallet · risk:low] Pull up a boarding pass stored in Apple Wallet
Esquema de entrada
{
"type": "object",
"properties": {
"flight_number": {
"description": "Flight number associated with the pass",
"type": "string"
},
"pass_name": {
"description": "Name or description of the pass to display",
"type": "string"
}
},
"required": []
}Prompts recomendados
duvera__dev_stackoverflow_searchduvera__dev_stackoverflow_searchapplehealth__heart_rate_readapplehealth__heart_rate_readmicrosoft365__calendar_listComunidad
Evidencia