# nirholas/cryptocurrency.cv: a free crypto news API with no key, an MCP server and a 662k-article archive

> The hosted API at cryptocurrency.cv answers plain HTTP calls with no signup, and the same repository ships a Next.js app, an MCP server and copy-in SDKs. Here is what the documentation covers, what it leaves open, and where the source-available licence bites.

**nirholas/cryptocurrency.cv** — Free crypto news API - real-time aggregator for Bitcoin, Ethereum, DeFi, Solana & altcoins. No API key required. RSS/Atom feeds, JSON REST API, historical archive with market context, embeddable widgets, ChatGPT plugin, Claude MCP server, SDKs (Python, TypeScript, Go, React, PHP). AI/LLM ready. Vibe coding friendly. Open source.

- Repository: https://github.com/nirholas/cryptocurrency.cv
- Website: https://cryptocurrency.cv
- Stars: 316 · Forks: 45
- Language: TypeScript
- License: NOASSERTION
- Published: 2026-09-14 · Updated: 2026-09-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/nirholas-cryptocurrency-cv

## What cryptocurrency.cv actually solves, and for whom

Pulling crypto headlines into an application normally means subscribing to a news API, or writing your own RSS ingestion, deduplication and storage layer. This project takes the first option and removes the billing step: the README states that the hosted API at cryptocurrency.cv requires no API key, no signup and no rate-limit paperwork, and that it aggregates 300+ sources. The audience is narrow and identifiable. It is developers building trading bots, alerting scripts, dashboards and LLM tools who need a headline stream today and do not want a vendor contract to get one. The repository also targets AI agents directly: it publishes llms.txt, llms-full.txt, an OpenAPI 3.1 document and an AGENTS.md file, and the README's own quick-start line is a curl command aimed at agents rather than humans. That framing is the most distinctive thing here. Most news APIs assume a human reads the docs and writes a client; this one assumes a model reads the docs and calls the endpoint.

## How the news pipeline is put together

The hosted service is the product; the repository is the implementation. package.json describes a Next.js application, and docker-compose.yml shows the deployment shape: an nginx front door on port 80 handling rate limiting, response caching and request coalescing, fanning out to Next.js replicas that expose port 3000 and talk to Redis over REDIS_URL=redis://redis:6379. The compose file sets two app replicas by default and documents scaling with docker compose up --scale app=4. Ingestion happens on the server side from RSS and Atom feeds, which is why the response objects carry a source name and a timeAgo field rather than a full article body. The API surface is large: the README claims 450+ routes across news, search, categories, market data, DeFi, whales, regulatory, portfolio and trading signals, and a historical archive of 662,047 articles from September 2017 onward, searchable by date, ticker, sentiment and full text. The AI routes are not self-contained. .env.example is explicit that GROQ_API_KEY is required for AI summarization, classification and translation, and that without it /api/ask, summaries, sentiment and translation return a not-configured response while every other endpoint keeps working. If you self-host, that is the line between a news API and a news API with opinions about the news.

## Installing it and making a first real call

You do not have to install anything to use the hosted API. The README's quick start is a single curl against the live endpoint, and the response is JSON with an articles array, a totalCount and a fetchedAt timestamp. Each article carries title, link, description, pubDate, source and timeAgo. Run this and you should see a JSON body with recent headlines:

```bash
curl https://cryptocurrency.cv/api/news
```

The same endpoint takes a category filter and a limit, which is the form you would use inside a script that only cares about one sector:

```bash
curl "https://cryptocurrency.cv/api/news?category=defi&limit=20"
```

For code, the README shows an npm package rather than a git clone. Install @nirholas/crypto-news and call getLatest with a count:

```bash
npm install @nirholas/crypto-news
```

```ts
import { CryptoNews } from '@nirholas/crypto-news';
const news = await new CryptoNews().getLatest(10);
```

Self-hosting is a separate path. The repository ships a Dockerfile that builds a standalone Next.js output on node:24-alpine, runs as a non-root nextjs user, exposes port 3000 and health-checks /api/health. The build sets DOCKER_BUILD=1 to switch next.config.js to standalone output, and the runner copies .next/standalone, .next/static, public, content and messages into the image. The documented build and run commands are:

```bash
docker build -t cryptocurrency-cv .
docker run -p 3000:3000 cryptocurrency-cv
```

The local development path is shorter. Copy .env.example to .env.local, run pnpm install && pnpm dev, and open http://localhost:3000. Every value in .env.example can be left blank and the app still boots; only the AI routes need a provider key.

## The MCP server is the part worth testing first

The README lists two ways to connect an LLM to this data. The hosted MCP endpoint is a Streamable-HTTP URL at https://cryptocurrency.cv/api/mcp, and the local one is a stdio server installed with npx -y @nirholas/free-crypto-news-mcp. The README states the server exposes 40+ tools. This matters because it changes the integration cost from writing a client to adding a server entry to a config file. It also changes the failure mode. A hosted MCP endpoint means your agent's tool calls leave your machine and hit a third party, and the repository does not document an authentication story for that endpoint, which is consistent with the no-key design but worth understanding before you point an agent at it. The local stdio server avoids that, at the cost of running a Node process alongside your agent. If you are evaluating this project for agent work, the MCP path is the shortest route to a yes or no, and it does not require reading the 450-endpoint catalog.

## Where the documentation stops short

Three gaps stand out. First, the licence. The README labels the project source-available (all rights reserved) with the hosted API free to use, and the repository's LICENSE file is the only authority on what that permits. A source-available licence is not an open source licence, and the README does not spell out whether you may fork, redistribute or run a modified copy as a service. Treat the hosted endpoint and the source code as two separate grants until you have read the file. Second, uptime and rate limits. The README says there is no rate-limit paperwork, and docker-compose.yml shows nginx doing rate limiting on a self-hosted deployment, but the documentation does not state what limits the hosted endpoint applies or what its availability target is. A free endpoint with no stated SLA is fine for a side project and a poor foundation for anything customer-facing. Third, the AI routes inherit a dependency. Self-hosting the news endpoints is self-contained; self-hosting /api/ask means holding a Groq key and accepting Groq's terms, and .env.example lists OpenRouter, OpenAI, Anthropic and HuggingFace as alternatives, so the choice is yours to make rather than the project's. Also worth noting: the archive is described as starting in September 2017, which means anything before that is out of scope, and the README does not describe how far back the hosted live feed is retained.

## How it compares with building on a general news API

The obvious alternative is a general-purpose news API such as NewsAPI or GNews, which cover many verticals and sell tiers with documented quotas, keys and support. The difference in approach is not the data, it is the contract. A general news API gives you a commercial relationship and a bill; cryptocurrency.cv gives you an unauthenticated endpoint and a source-available repository. If you need an SLA, invoicing or a support contact, the general API is the correct choice and this project is the wrong one. If you need crypto-specific structure that a general API does not model, the gap is real: this project exposes categories, tickers, sentiment, whale activity, regulatory items and a historical archive with market context, and it ships an MCP server and llms.txt so an agent can discover the endpoints without a human writing glue code. The second alternative is rolling your own RSS ingestion. That is genuinely viable for a handful of feeds, and it is the honest comparison for anyone whose requirement is twenty sources and a cron job. The case for this project starts around the point where you want hundreds of sources, translation of international outlets, and a searchable archive you did not have to build.

## Maintenance, upgrade cost and licence implications

The repository is not archived and its last push was on 2026-09-14, six days before this was written, so the codebase is being touched. That says nothing about whether the hosted endpoint will exist next year, and the README makes no commitment on that point. Upgrade cost depends on which surface you adopt. If you consume the hosted JSON API, your coupling is to a response shape with articles, totalCount and fetchedAt, and the README documents that shape, so a change is visible and portable. If you self-host, you inherit a Next.js application with a pnpm build, a Dockerfile pinned to node:24-alpine and pnpm@10, a Redis dependency, and two patch-next-*.js files that the Dockerfile notes are required by the postinstall hook. That last detail is the one to weigh: patching Next.js internals during install is a maintenance liability that will surface on framework upgrades. On licensing, the README's own summary is source-available with all rights reserved and a free hosted API, which is a narrower grant than an OSI-approved licence. Whether your use fits inside it is a question for your own counsel, not for this article; the practical step is to read LICENSE and the terms on cryptocurrency.cv before you ship anything commercial.

## Conclusion

Adopt it if you need crypto headlines in an agent, a dashboard or a bot and you do not want to manage feed ingestion or pay for a news vendor. Do not adopt it if you need a guaranteed uptime contract, a documented retention policy, or the right to fork and redistribute the code, because the licence is source-available with all rights reserved. Before you build on it, read LICENSE in full, check whether the hosted endpoint's terms match your commercial use, and keep a fallback path for the day cryptocurrency.cv stops answering.

## FAQ

### Do I need an API key to use the cryptocurrency.cv API?

No. The README states the hosted API at cryptocurrency.cv requires no API key, no signup and no rate-limit paperwork, and that every endpoint returns JSON and is CORS-enabled. Self-hosting is different: only the AI routes need a provider key, and .env.example lists GROQ_API_KEY as required for AI summarization, classification and translation.

### How do I self-host cryptocurrency.cv?

The repository ships a Dockerfile that builds a standalone Next.js output on node:24-alpine and exposes port 3000, with documented commands docker build -t cryptocurrency-cv . and docker run -p 3000:3000 cryptocurrency-cv. For local development, .env.example says to copy it to .env.local, run pnpm install && pnpm dev, and open http://localhost:3000 with every value left blank.

### How do I connect cryptocurrency.cv to Claude or another LLM?

The README lists two MCP options: a hosted Streamable-HTTP endpoint at https://cryptocurrency.cv/api/mcp, or a local stdio server started with npx -y @nirholas/free-crypto-news-mcp. It states the server exposes 40+ tools. The repository also publishes llms.txt, llms-full.txt, an OpenAPI 3.1 document and AGENTS.md for agent discovery.

### What does the cryptocurrency.cv licence allow?

The README describes the project as source-available (all rights reserved) with the hosted API free to use, and the repository's LICENSE file is the authority on the exact terms. That is a narrower grant than an open source licence, and the README does not state whether forking or running a modified copy as a service is permitted.

### Why is crypto up today?

The API exposes an endpoint for this: the README's quick start shows curl "https://cryptocurrency.cv/api/ask?q=why%20is%20ETH%20up%20today", which answers a question from the day's news. That route is one of the AI features and requires GROQ_API_KEY when self-hosting; on the hosted endpoint no key is needed.

## Sources

- [Issues](https://github.com/nirholas/cryptocurrency.cv/issues)
- [nirholas/cryptocurrency.cv on GitHub](https://github.com/nirholas/cryptocurrency.cv)
- [Project website](https://cryptocurrency.cv)
- [README](https://github.com/nirholas/cryptocurrency.cv/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/nirholas-cryptocurrency-cv
