# DiarioBitcoin

> Spanish crypto, Bitcoin, AI and finance news since 2014. Free search and excerpts, paid full text.

- name: com.diariobitcoin/news
- version: 0.4.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.diariobitcoin%2Fnews
- tools: https://api.protogrid.dev/v1/servers/com.diariobitcoin%2Fnews/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "news": {
      "type": "http",
      "url": "https://www.diariobitcoin.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-11d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,494 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 50 (weight 15)

- warn `stability.changes`: 7 tool changes in 30 days
- fail `stability.rug_pull`: 1 tools kept their name but changed most of their description in 30 days; review before trusting them
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 1,494 tokens to load them all
- tool set hash: 0d2b7281de66ed965833aa063837627e
- tools last changed: 2026-11-03T05:15:08.623Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.diariobitcoin/news.svg)](https://protogrid.dev/servers/com.diariobitcoin/news)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-03 `get_full_article` removed
  - PAID: the full text of one DiarioBitcoin article, for a few cents in USDC or USDT on Solana mainnet, paid per call with x402 (no account or API key). Same arguments as get_article. Without payment it returns an x402 PaymentRequired (isError=true; accepts lists amount in atomic units, asset mint, payTo and extra.feePayer, which pays the network fee). Pay by calling again with a PaymentPayload in _meta["x402/payment"] (scheme exact: a transaction with SetComputeUnitLimit, SetComputeUnitPrice, one TransferChecked to payTo's token account, then one Memo whose data is extra.memo and nothing else, signed by your wallet, extra.feePayer as fee payer). The result is the get_article envelope with body_kind="full" and the receipt in _meta["x402/payment-response"]. Sponsored articles and press releases are not sold. Cannot pay? Use get_article (excerpt and link).
- 2026-11-03 `get_news` changed (description, inputSchema)
  - before: Search or list DiarioBitcoin articles (Spanish-language crypto news, 2014-today). With query: best matches first (relevance, boosted by recency); every word must match; write queries in Spanish ("regulación", not "regulation"; accents optional; tickers and names like BTC, ETF, BlackRock as-is). Without query: newest first. Filters: category (slug from list_categories, includes subcategories) and since (ISO date or date-time). Up to 25 items per page; page with next_cursor (a query pages through its top 200 matches, a listing through its newest 500: narrow with since or category beyond). Items carry title, url, dates (ISO UTC), author, category slugs, excerpt and the paid-placement label: paid_placement=true means sponsored or third-party content, never DiarioBitcoin's reporting. Use get_article for one article.
  - after: Search or list DiarioBitcoin articles (Spanish-language crypto news, 2014-today). With query: best matches first (relevance, boosted by recency); every word must match; write queries in Spanish ("regulación", not "regulation"; accents optional; tickers and names like BTC, ETF, BlackRock as-is). Without query: newest first. Filters: category (slug from list_categories, includes subcategories), exclude_category (slugs to leave out: ["analisis"] drops the automated per-token market analyses that otherwise fill the latest news), since and until (ISO date or date-time; until includes that whole day). Up to 25 items per page; page with next_cursor (a query pages through its top 200 matches, a listing through its newest 500: narrow with since, until or category beyond). Items carry title, url, dates (ISO UTC), author, category slugs, excerpt and the paid-placement label: paid_placement=true means sponsored or third-party content, never DiarioBitcoin's reporting. Full text: get_article.
- 2026-11-03 `get_article_excerpt` added
  - Free: one DiarioBitcoin article by id or slug (from get_news; never a URL) with its excerpt as body (body_kind="excerpt"), the get_news fields and the paid-placement label. Use it to look up one article; summarize from the excerpt and link to url. The full text is get_article (paid). Sponsored articles and press releases must be labelled as paid or third-party content.
- 2026-11-03 `get_article` changed (description, outputSchema, annotations) **meaning changed**
  - before: One DiarioBitcoin article by id or slug (from get_news; never a URL). Returns the get_news fields plus body as plain text. body_kind="excerpt" means the full text is not offered for this article: summarize from the excerpt and link to url, or buy the full text with get_full_article if you can pay. Sponsored articles and press releases (content_kind other than article, free press releases included) are always excerpt-only and must be labelled as paid or third-party content.
  - after: PAID: the full text of one DiarioBitcoin article by id or slug (from get_news; never a URL), at a small per-article price in USDC or USDT on Solana mainnet, paid per call with x402 (no account or API key). Without payment it returns an x402 PaymentRequired (isError=true; accepts lists amount in atomic units, asset mint, payTo and extra.feePayer, which pays the network fee). Pay by calling again with a PaymentPayload in _meta["x402/payment"] (scheme exact: a transaction with SetComputeUnitLimit, SetComputeUnitPrice, one TransferChecked to payTo's token account, then one Memo whose data is extra.memo and nothing else, signed by your wallet, extra.feePayer as fee payer). The result is the article envelope (the get_news fields plus body) with body_kind="full" and the receipt in _meta["x402/payment-response"]. Sponsored articles and press releases are not sold. Cannot pay? Use get_article_excerpt (free: excerpt and link).
- 2026-11-02 `list_categories` changed (outputSchema)
- 2026-11-02 `get_news` changed (outputSchema)
- 2026-11-02 `get_article` changed (description, outputSchema)
  - before: One DiarioBitcoin article by id or slug (from get_news; never a URL). Returns the get_news fields plus body as plain text. body_kind="excerpt" means the full text is not offered for this article: summarize from the excerpt and link to url, or buy the full text with get_full_article if you can pay. Sponsored articles and press releases (paid_placement=true) are always excerpt-only and must be labelled as paid or third-party content.
  - after: One DiarioBitcoin article by id or slug (from get_news; never a URL). Returns the get_news fields plus body as plain text. body_kind="excerpt" means the full text is not offered for this article: summarize from the excerpt and link to url, or buy the full text with get_full_article if you can pay. Sponsored articles and press releases (content_kind other than article, free press releases included) are always excerpt-only and must be labelled as paid or third-party content.

Full history: https://api.protogrid.dev/v1/servers/com.diariobitcoin%2Fnews/changes

## Remotes

- https://www.diariobitcoin.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)
- https://www.diariobitcoin.com/sse (sse, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `get_article`: PAID: the full text of one DiarioBitcoin article by id or slug (from get_news; never a URL), at a small per-article price in USDC or USDT on Solana mainnet, paid per call with x402 (no account or API key). Without payment it returns an x402 PaymentRequired (isError=true; accepts lists amount in atomic units, asset mint, payTo and extra.feePayer, which pays the network fee). Pay by calling again with a PaymentPayload in _meta["x402/payment"] (scheme exact: a transaction with SetComputeUnitLimit, SetComputeUnitPrice, one TransferChecked to payTo's token account, then one Memo whose data is extra.memo and nothing else, signed by your wallet, extra.feePayer as fee payer). The result is the article envelope (the get_news fields plus body) with body_kind="full" and the receipt in _meta["x402/payment-response"]. Sponsored articles and press releases are not sold. Cannot pay? Use get_article_excerpt (free: excerpt and link).
- `get_article_excerpt`: Free: one DiarioBitcoin article by id or slug (from get_news; never a URL) with its excerpt as body (body_kind="excerpt"), the get_news fields and the paid-placement label. Use it to look up one article; summarize from the excerpt and link to url. The full text is get_article (paid). Sponsored articles and press releases must be labelled as paid or third-party content.
- `get_news`: Search or list DiarioBitcoin articles (Spanish-language crypto news, 2014-today). With query: best matches first (relevance, boosted by recency); every word must match; write queries in Spanish ("regulación", not "regulation"; accents optional; tickers and names like BTC, ETF, BlackRock as-is). Without query: newest first. Filters: category (slug from list_categories, includes subcategories), exclude_category (slugs to leave out: ["analisis"] drops the automated per-token market analyses that otherwise fill the latest news), since and until (ISO date or date-time; until includes that whole day). Up to 25 items per page; page with next_cursor (a query pages through its top 200 matches, a listing through its newest 500: narrow with since, until or category beyond). Items carry title, url, dates (ISO UTC), author, category slugs, excerpt and the paid-placement label: paid_placement=true means sponsored or third-party content, never DiarioBitcoin's reporting. Full text: get_article.
- `get_usage_guide`: How to use this server well: recipes (today's news on a topic, latest news, topic research, paging), what each result field means, the paid-placement labels, how to cite, and what to do on each error code. Markdown. Call it once before a non-trivial task; the same text is the resource dbtc://guide.
- `list_categories`: List DiarioBitcoin's news categories: id, slug, name (Spanish), count of published articles, parent id (0 = top level) and paid_placement ("sponsored_article", "press_release" or null for editorial categories). Use a slug as get_news's category. Synced from the site hourly; as_of is the sync time.
