fake-py-mcp

This project exposes all Faker class methods from fake.py as MCP tools using FastMCP 2.0.

PyPI Version Supported Python versions Build Status Documentation Status llms.txt - documentation for LLMs MIT Coverage

Purpose

It’s easy for a model to look smart “on paper”, but real-world work requires following strict technical rules.

This MCP server provides a wide range of complex, “fake” tools to test how well a model actually follows instructions. By asking a model to generate data for these tools, you can see if it:

  1. Uses the exact parameters required (no more, no less).

  2. Provides the correct data types and formats.

  3. Understands complex technical requirements without making mistakes.

If a model can accurately handle these fake tools, you can trust it to handle your real production tools. It’s a simple way to find out which models are actually ready for work.

Features

  • 80+ fake.py fake data methods (names, text, internet, files, primitives, dates, geo, books, banking, file content), dynamically registered (no manual boilerplate), categorised and documented.

  • Binary outputs (e.g., images, PDFs) are returned as base64-encoded strings.

  • server_info tool for introspection.

Prerequisites

Python 3.10+

Installation

uv tool install fake-py-mcp

Usage

Run the server

STDIO

fake-py-mcp

HTTP

fake-py-mcp http

SSE

fake-py-mcp sse

Connect with any MCP client to access all fake.py tools

Developers need good tools. Unfortunately, FastMCP does not come with a GUI (like OpenAPI/Swagger), but there are good tools available.

Option 1: MCP Inspector

Installation

brew install mcp-inspector

Usage

Run MCP Inspector on port 8006:

CLIENT_PORT=8006 mcp-inspector fake-py-mcp

Or if you prefer no-auth option:

DANGEROUSLY_OMIT_AUTH=true CLIENT_PORT=8006 mcp-inspector fake-py-mcp

Open http://127.0.0.1:8006 and enjoy the MCP Inspector interface.

Option 2: mcpo

Installation

uv tool install mcpo

Usage

Run mcpo on port 8006:

mcpo --port 8006 -- fake-py-mcp

Open http://127.0.0.1:8006/docs and enjoy OpenAPI Swagger comfort.

Documentation

Tests

Run the tests:

pytest

Writing documentation

Keep the following hierarchy.

=====
title
=====

header
======

sub-header
----------

sub-sub-header
~~~~~~~~~~~~~~

sub-sub-sub-header
^^^^^^^^^^^^^^^^^^

sub-sub-sub-sub-header
++++++++++++++++++++++

sub-sub-sub-sub-sub-header
**************************

License

MIT

Support

For security issues contact me at the e-mail given in the Author section.

For overall issues, go to GitHub.

Author

Artur Barseghyan <artur.barseghyan@gmail.com>

Project documentation

Contents: