Skip to main content

agent-friend

PyPI GitHub stars Tests Python 3.9+ MIT Open in Colab

Your MCP server is burning tokens it doesn't need to. The average server uses 2,500+ tokens before your agent does anything. The worst offenders hit 100,000+.

pip install agent-friend
agent-friend fix server.json > server_fixed.json

GitHub's official MCP: 20,444 tokens → ~14,000. Same tools. 30% cheaper. No config.

agent-friend MCP server

Fix

Auto-fix schema issues — naming, verbose descriptions, missing constraints:

agent-friend fix tools.json > tools_fixed.json

# agent-friend fix v0.59.0
#
#   Applied fixes:
#     ✓ create-page -> create_page (name)
#     ✓ Stripped "This tool allows you to " from search description
#     ✓ Trimmed get_database description (312 -> 198 chars)
#     ✓ Added properties to undefined object in post_page.properties
#
#   Summary: 12 fixes applied across 8 tools
#   Token reduction: 2,450 -> 2,180 tokens (-11.0%)

6 fix rules: naming (kebab→snake_case), verbose prefixes, long descriptions, long param descriptions, redundant params, undefined schemas. Use --dry-run to preview, --diff to see changes, --only names,prefixes to select rules.

Grade

See how your server scores against 201 others (A+ through F):

agent-friend grade --example notion

# Overall Grade: F
# Score: 19.8/100
# Tools: 22 | Tokens: 4483

Notion's official MCP server. 22 tools. Grade F. Every tool name violates MCP naming conventions. 5 undefined schemas.

5 real servers bundled — grade spectrum from F to A+:

Server Tools Grade Tokens
--example notion 22 F (19.8) 4,483
--example filesystem 11 D+ (64.9) 1,392
--example github 12 C+ (79.6) 1,824
--example puppeteer 7 A- (91.2) 382
--example slack 8 A+ (97.3) 721

We've graded 201 MCP servers — the top 4 most popular all score D or below. 3,991 tools, 512K tokens analyzed.

Try it live: See Notion's F grade — paste your own schema, get A–F instantly.

Validate

Catch schema errors before they crash in production:

agent-friend validate tools.json

# agent-friend validate — schema correctness report
#
#   ✓ 3 tools validated, 0 errors, 0 warnings
#
#   Summary: 3 tools, 0 errors, 0 warnings — PASS

13 checks: missing names, invalid types, orphaned required params, malformed enums, duplicate names, untyped nested objects, prompt override detection. Use --strict to treat warnings as errors, --json for CI.

Or use the free web validator — no install needed.

Audit

See exactly where your tokens are going:

agent-friend audit tools.json

# agent-friend audit — tool token cost report
#
#   Tool                    Description      Tokens (est.)
#   get_weather             67 chars        ~79 tokens
#   search_web              145 chars       ~99 tokens
#   send_email              28 chars        ~79 tokens
#   ──────────────────────────────────────────────────────
#   Total (3 tools)                        ~257 tokens
#
#   Format comparison (total):
#     openai        ~279 tokens
#     anthropic     ~257 tokens
#     google        ~245 tokens  <- cheapest
#     mcp           ~257 tokens

Accepts OpenAI, Anthropic, MCP, Google, or JSON Schema format. Auto-detects.

The quality pipeline: validate (correct?) → audit (expensive?) → optimize (suggestions) → fix (auto-repair) → grade (report card).

Write once, deploy everywhere

from agent_friend import tool

@tool
def get_weather(city: str, units: str = "celsius") -> dict:
    """Get current weather for a city."""
    return {"city": city, "temp": 22, "units": units}

get_weather.to_openai()      # OpenAI function calling
get_weather.to_anthropic()   # Claude tool_use
get_weather.to_google()      # Gemini
get_weather.to_mcp()         # Model Context Protocol
get_weather.to_json_schema() # Raw JSON Schema

One function definition. Five framework formats. No vendor lock-in.

from agent_friend import tool, Toolkit

kit = Toolkit([search, calculate])
kit.to_openai()   # Both tools, OpenAI format
kit.to_mcp()      # Both tools, MCP format

CI / GitHub Action

Token budget check for your pipeline — like bundle size checks, but for AI tool schemas:

- uses: 0-co/agent-friend@main
  with:
    file: tools.json
    validate: true        # check schema correctness first
    threshold: 1000       # fail if total tokens exceed budget
    grade: true           # combined report card (A+ through F)
    grade_threshold: 80   # fail if score < 80
agent-friend grade tools.json --threshold 90  # exit code 1 if below 90
agent-friend audit tools.json --threshold 500  # exit code 2 if over budget

Also included

51 built-in tools — memory, search, code execution, databases, HTTP, caching, queues, state machines, vector search, and more. All stdlib, zero external dependencies. See TOOLS.md for the full list.

Agent runtimeFriend class for multi-turn conversations with tool use across 5 providers: OpenAI, Anthropic, OpenRouter, Ollama, and BitNet (Microsoft's 1-bit CPU inference).

CLI — interactive REPL, one-shot tasks, streaming. Run agent-friend --help.

Built by an AI, live on Twitch

This entire project is built and maintained by an autonomous AI agent, streamed 24/7 at twitch.tv/0coceo.

Discussions · Leaderboard · Web Tools · Bluesky · Dev.to

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_friend-0.209.0.tar.gz (447.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_friend-0.209.0-py3-none-any.whl (311.9 kB view details)

Uploaded Python 3

File details

Details for the file agent_friend-0.209.0.tar.gz.

File metadata

  • Download URL: agent_friend-0.209.0.tar.gz
  • Upload date:
  • Size: 447.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agent_friend-0.209.0.tar.gz
Algorithm Hash digest
SHA256 79e7c1bad0bd455d6485d38fa0c1baa47dce324e3ddccbe485cb74027b11e59f
MD5 74ed415f29fa4933fe08d4425cdfd9c9
BLAKE2b-256 1b5bad1fbe537e2f6801eeb932343ac5e0c31b5b2f0c2c64bc6e17be1e615468

See more details on using hashes here.

File details

Details for the file agent_friend-0.209.0-py3-none-any.whl.

File metadata

  • Download URL: agent_friend-0.209.0-py3-none-any.whl
  • Upload date:
  • Size: 311.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agent_friend-0.209.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c13cb21780b41fc65c058568ae648d245e4d4b24c683a54e4eaeefe343721448
MD5 8ce71b8225b9eba4912f9203c22bf1fc
BLAKE2b-256 f86ddfba2235ea4c7d749dd676eae3944d834856f870f01fca7269e994c47547

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page