TinyRoe
TinyFish's two free tools, and nothing else.
The official TinyFish MCP server ships 19 tools plus a long instructions block, and six of them spend money. TinyRoe exposes only search and fetch_content, which TinyFish made free for every agent at any wallet balance, including $0.
It skips the OAuth too — these two are served over a REST API behind an X-API-Key header, so nothing expires and there is no authenticate stub to swap out. The same two tools are advertised always.
The project is TinyRoe; the package and the tool prefix are lowercase tinyroe.
| tool | does | limit |
|---|---|---|
search |
web, news, or academic search | 30 requests/min |
fetch_content |
read up to 10 URLs, returns clean markdown | 150 URLs/min |
Install
Needs uv. No clone, no Node. Get a key at agent.tinyfish.ai/api-keys — it is shown once.
mkdir -p ~/.config/tinyroe
echo 'TINYFISH_API_KEY=your_key' > ~/.config/tinyroe/.env
Then add the server:
claude mcp add tinyroe -s user -- uvx tinyroe # Claude Code, all projects
codex mcp add tinyroe -- uvx tinyroe # Codex
OpenCode uses its own schema, in opencode.json or ~/.config/opencode/opencode.json:
{ "mcp": { "tinyroe": { "type": "local", "command": ["uvx", "tinyroe"], "enabled": true } } }
Any other client takes the same two fields:
{ "mcpServers": { "tinyroe": { "command": "uvx", "args": ["tinyroe"] } } }
Restart the client. You should see two tools and no authentication step.
The key
TINYFISH_API_KEY in the environment wins, then ~/.config/tinyroe/.env, then a .env in the working directory. Prefer the config file: a client launched from a desktop app never sources your shell profile, so an export in .zshrc reaches terminal-launched clients only.
It is read lazily on the first call, so a missing key is a readable error rather than a server that will not start.
Development
uv sync
uv run ruff format . && uv run ruff check . && uv run basedpyright
uv run tinyroe
Licence
MIT. Not affiliated with TinyFish; bring your own key.
Release files for tinyroe 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tinyroe-1.0.0.tar.gz | 13.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tinyroe-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / tinyroe-1.0.0.tar.gz
| Download URL | tinyroe-1.0.0.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
237f0c1c8cf301687769170cca3e68f80aeb3b746e9c8948b4e274d906714fe1
|
|
BLAKE2b-256 checksum How to use checksums |
e6d86396edf6bf73d841b32f951c9dcc9c623aba82b7bf04c8bd3334fb7a83c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / tinyroe-1.0.0-py3-none-any.whl
| Download URL | tinyroe-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0bda2aff2d07b897fd85655527f7aba7f36fc9231dddf8c04e97729a4926586d
|
|
BLAKE2b-256 checksum How to use checksums |
544bd0c763b8d9f6a1e207cc60056e5ee8460e897585709cfc032a47049f242f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|