Skip to main content
Glama
mcp-tools.md15.9 kB
# MCP Tool Contracts **Version**: 1.0.0 **Date**: 2025-11-05 **Protocol**: Model Context Protocol (MCP) ## Overview This document defines all MCP tool contracts for the Faker MCP server. Each tool is defined with its JSON Schema for parameter validation and example requests/responses. --- ## Tool 1: generate-person **Description**: Generates fake person data including names, emails, phone numbers, and addresses. **Input Schema**: ```json { "type": "object", "properties": { "count": { "type": "number", "description": "Number of person records to generate", "minimum": 1, "maximum": 10000, "default": 1 }, "locale": { "type": "string", "description": "Locale for generated data", "enum": ["en", "fr", "de", "es", "ja"], "default": "en" }, "seed": { "type": "number", "description": "Optional seed for reproducible generation", "minimum": 0 }, "includeAddress": { "type": "boolean", "description": "Whether to include address information", "default": true }, "includePhone": { "type": "boolean", "description": "Whether to include phone number", "default": true }, "includeDateOfBirth": { "type": "boolean", "description": "Whether to include date of birth", "default": false } }, "required": [] } ``` **Example Request**: ```json { "method": "tools/call", "params": { "name": "generate-person", "arguments": { "count": 5, "locale": "en", "seed": 12345, "includeAddress": true, "includePhone": true, "includeDateOfBirth": false } } } ``` **Example Response**: ```json { "content": [ { "type": "text", "text": "Generated 5 person records with seed 12345" }, { "type": "resource", "resource": { "uri": "faker://persons/generated", "mimeType": "application/json", "text": "[{\"id\":\"person_12345_0\",\"firstName\":\"John\",\"lastName\":\"Doe\",\"fullName\":\"John Doe\",\"email\":\"john.doe@example.com\",\"phone\":\"+1-555-123-4567\",\"address\":{\"street\":\"123 Main St\",\"city\":\"Springfield\",\"state\":\"IL\",\"postalCode\":\"62701\",\"country\":\"United States\"}},{\"id\":\"person_12345_1\",\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"fullName\":\"Jane Smith\",\"email\":\"jane.smith@example.com\",\"phone\":\"+1-555-987-6543\",\"address\":{\"street\":\"456 Elm St\",\"city\":\"Portland\",\"state\":\"OR\",\"postalCode\":\"97201\",\"country\":\"United States\"}},{\"id\":\"person_12345_2\",\"firstName\":\"Bob\",\"lastName\":\"Johnson\",\"fullName\":\"Bob Johnson\",\"email\":\"bob.johnson@example.com\",\"phone\":\"+1-555-456-7890\",\"address\":{\"street\":\"789 Oak Ave\",\"city\":\"Austin\",\"state\":\"TX\",\"postalCode\":\"73301\",\"country\":\"United States\"}},{\"id\":\"person_12345_3\",\"firstName\":\"Alice\",\"lastName\":\"Williams\",\"fullName\":\"Alice Williams\",\"email\":\"alice.williams@example.com\",\"phone\":\"+1-555-321-0987\",\"address\":{\"street\":\"321 Pine Rd\",\"city\":\"Seattle\",\"state\":\"WA\",\"postalCode\":\"98101\",\"country\":\"United States\"}},{\"id\":\"person_12345_4\",\"firstName\":\"Charlie\",\"lastName\":\"Brown\",\"fullName\":\"Charlie Brown\",\"email\":\"charlie.brown@example.com\",\"phone\":\"+1-555-654-3210\",\"address\":{\"street\":\"654 Maple Dr\",\"city\":\"Denver\",\"state\":\"CO\",\"postalCode\":\"80201\",\"country\":\"United States\"}}]" } } ] } ``` --- ## Tool 2: generate-company **Description**: Generates fake company data including names, industries, contact information, and addresses. **Input Schema**: ```json { "type": "object", "properties": { "count": { "type": "number", "description": "Number of company records to generate", "minimum": 1, "maximum": 10000, "default": 1 }, "locale": { "type": "string", "description": "Locale for generated data", "enum": ["en", "fr", "de", "es", "ja"], "default": "en" }, "seed": { "type": "number", "description": "Optional seed for reproducible generation", "minimum": 0 }, "includeAddress": { "type": "boolean", "description": "Whether to include address information", "default": true }, "includeWebsite": { "type": "boolean", "description": "Whether to include website URL", "default": true }, "includeFoundedYear": { "type": "boolean", "description": "Whether to include founded year", "default": false }, "includeEmployeeCount": { "type": "boolean", "description": "Whether to include employee count", "default": false } }, "required": [] } ``` **Example Request**: ```json { "method": "tools/call", "params": { "name": "generate-company", "arguments": { "count": 3, "locale": "en", "seed": 54321, "includeAddress": true, "includeWebsite": true, "includeFoundedYear": true, "includeEmployeeCount": true } } } ``` **Example Response**: ```json { "content": [ { "type": "text", "text": "Generated 3 company records with seed 54321" }, { "type": "resource", "resource": { "uri": "faker://companies/generated", "mimeType": "application/json", "text": "[{\"id\":\"company_54321_0\",\"name\":\"Acme Corporation\",\"industry\":\"Technology\",\"email\":\"contact@acme.example.com\",\"phone\":\"+1-555-111-2222\",\"website\":\"https://acme.example.com\",\"address\":{\"street\":\"100 Tech Blvd\",\"city\":\"San Francisco\",\"state\":\"CA\",\"postalCode\":\"94105\",\"country\":\"United States\"},\"founded\":2010,\"employeeCount\":250},{\"id\":\"company_54321_1\",\"name\":\"Global Industries Inc\",\"industry\":\"Manufacturing\",\"email\":\"info@globalind.example.com\",\"phone\":\"+1-555-222-3333\",\"website\":\"https://globalind.example.com\",\"address\":{\"street\":\"200 Industrial Way\",\"city\":\"Detroit\",\"state\":\"MI\",\"postalCode\":\"48201\",\"country\":\"United States\"},\"founded\":1995,\"employeeCount\":1500},{\"id\":\"company_54321_2\",\"name\":\"Innovative Solutions LLC\",\"industry\":\"Consulting\",\"email\":\"hello@innsol.example.com\",\"phone\":\"+1-555-333-4444\",\"website\":\"https://innsol.example.com\",\"address\":{\"street\":\"300 Business Park\",\"city\":\"Boston\",\"state\":\"MA\",\"postalCode\":\"02101\",\"country\":\"United States\"},\"founded\":2018,\"employeeCount\":75}]" } } ] } ``` --- ## Tool 3: generate-dataset **Description**: Generates structured datasets with multiple entity types and referential integrity between them. **Input Schema**: ```json { "type": "object", "properties": { "schema": { "type": "object", "description": "Dataset schema defining entities and relationships", "properties": { "entities": { "type": "object", "description": "Map of entity names to entity definitions", "additionalProperties": { "type": "object", "properties": { "count": { "type": "number", "description": "Number of records to generate for this entity", "minimum": 1, "maximum": 10000 }, "type": { "type": "string", "description": "Entity type", "enum": ["person", "company", "custom"] }, "fields": { "type": "array", "description": "List of fields to include (optional, defaults to all)", "items": { "type": "string" } }, "relationships": { "type": "object", "description": "Foreign key relationships to other entities", "additionalProperties": { "type": "object", "properties": { "references": { "type": "string", "description": "Name of the parent entity" }, "type": { "type": "string", "description": "Relationship type", "enum": ["one-to-many", "many-to-many"] }, "nullable": { "type": "boolean", "description": "Whether the foreign key can be null", "default": false } }, "required": ["references", "type"] } } }, "required": ["count", "type"] } } }, "required": ["entities"] }, "locale": { "type": "string", "description": "Locale for generated data", "enum": ["en", "fr", "de", "es", "ja"], "default": "en" }, "seed": { "type": "number", "description": "Optional seed for reproducible generation", "minimum": 0 } }, "required": ["schema"] } ``` **Example Request**: ```json { "method": "tools/call", "params": { "name": "generate-dataset", "arguments": { "schema": { "entities": { "users": { "count": 10, "type": "person", "fields": ["id", "fullName", "email", "phone"] }, "orders": { "count": 30, "type": "custom", "fields": ["id", "userId", "productName", "price", "orderDate"], "relationships": { "userId": { "references": "users", "type": "one-to-many", "nullable": false } } } } }, "locale": "en", "seed": 99999 } } } ``` **Example Response**: ```json { "content": [ { "type": "text", "text": "Generated dataset with 2 entities: 10 users, 30 orders (seed: 99999)" }, { "type": "resource", "resource": { "uri": "faker://dataset/generated", "mimeType": "application/json", "text": "{\"users\":[{\"id\":\"user_99999_0\",\"fullName\":\"John Doe\",\"email\":\"john.doe@example.com\",\"phone\":\"+1-555-100-0001\"},{\"id\":\"user_99999_1\",\"fullName\":\"Jane Smith\",\"email\":\"jane.smith@example.com\",\"phone\":\"+1-555-100-0002\"}],\"orders\":[{\"id\":\"order_99999_0\",\"userId\":\"user_99999_0\",\"productName\":\"Laptop\",\"price\":1299.99,\"orderDate\":\"2024-03-15\"},{\"id\":\"order_99999_1\",\"userId\":\"user_99999_0\",\"productName\":\"Mouse\",\"price\":29.99,\"orderDate\":\"2024-03-16\"},{\"id\":\"order_99999_2\",\"userId\":\"user_99999_1\",\"productName\":\"Keyboard\",\"price\":89.99,\"orderDate\":\"2024-03-17\"}]}" } } ] } ``` --- ## Tool 4: generate-custom **Description**: Generates fake data following custom patterns, including regex patterns, enums, formats, and ranges. **Input Schema**: ```json { "type": "object", "properties": { "count": { "type": "number", "description": "Number of records to generate", "minimum": 1, "maximum": 10000, "default": 1 }, "patterns": { "type": "object", "description": "Map of field names to pattern definitions", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "description": "Pattern type", "enum": ["regex", "enum", "format", "range"] }, "value": { "description": "Pattern value (type depends on pattern type)", "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } }, { "type": "object" } ] } }, "required": ["type", "value"] } }, "locale": { "type": "string", "description": "Locale for generated data (affects format-based patterns)", "enum": ["en", "fr", "de", "es", "ja"], "default": "en" }, "seed": { "type": "number", "description": "Optional seed for reproducible generation", "minimum": 0 } }, "required": ["patterns"] } ``` **Example Request**: ```json { "method": "tools/call", "params": { "name": "generate-custom", "arguments": { "count": 5, "patterns": { "productCode": { "type": "regex", "value": "PRD-[0-9]{4}-[A-Z]{2}" }, "status": { "type": "enum", "value": ["pending", "active", "completed", "cancelled"] }, "price": { "type": "range", "value": { "min": 10, "max": 1000 } }, "reference": { "type": "format", "value": "REF-{{year}}-{{random:5}}" } }, "locale": "en", "seed": 11111 } } } ``` **Example Response**: ```json { "content": [ { "type": "text", "text": "Generated 5 custom records with seed 11111" }, { "type": "resource", "resource": { "uri": "faker://custom/generated", "mimeType": "application/json", "text": "[{\"id\":\"custom_11111_0\",\"productCode\":\"PRD-1234-AB\",\"status\":\"active\",\"price\":456.78,\"reference\":\"REF-2024-A3B5C\"},{\"id\":\"custom_11111_1\",\"productCode\":\"PRD-5678-CD\",\"status\":\"pending\",\"price\":123.45,\"reference\":\"REF-2024-D7E9F\"},{\"id\":\"custom_11111_2\",\"productCode\":\"PRD-9012-EF\",\"status\":\"completed\",\"price\":789.12,\"reference\":\"REF-2024-G1H3I\"},{\"id\":\"custom_11111_3\",\"productCode\":\"PRD-3456-GH\",\"status\":\"active\",\"price\":234.56,\"reference\":\"REF-2024-J5K7L\"},{\"id\":\"custom_11111_4\",\"productCode\":\"PRD-7890-IJ\",\"status\":\"cancelled\",\"price\":567.89,\"reference\":\"REF-2024-M9N1O\"}]" } } ] } ``` --- ## Error Responses All tools follow MCP standard error response format. **Invalid Parameters Error**: ```json { "error": { "code": -32602, "message": "Invalid count parameter: must be between 1 and 10000", "data": { "received": 50000, "max": 10000 } } } ``` **Unsupported Locale Error**: ```json { "error": { "code": -32001, "message": "Unsupported locale: zh. Supported locales: en, fr, de, es, ja", "data": { "received": "zh", "supported": ["en", "fr", "de", "es", "ja"] } } } ``` **Schema Validation Error**: ```json { "error": { "code": -32602, "message": "Invalid schema: circular dependency detected in relationships", "data": { "cycle": ["orders", "items", "orders"] } } } ``` **Internal Error**: ```json { "error": { "code": -32603, "message": "Data generation failed: unexpected error in faker library", "data": { "originalError": "Cannot read property 'name' of undefined" } } } ``` --- ## Server Capabilities The server declares the following capabilities in its initialization response: ```json { "capabilities": { "tools": { "listChanged": false } }, "serverInfo": { "name": "faker-mcp-server", "version": "1.0.0" } } ``` --- ## Performance Guarantees - **Small requests** (≤100 records): Response time <100ms - **Medium requests** (101-1000 records): Response time <1000ms (1s) - **Large requests** (1001-10000 records): Response time <10000ms (10s) - **Memory usage**: <100MB for all request sizes up to 10,000 records - **Concurrency**: Supports up to 10 concurrent requests without degradation --- **Contract Version**: 1.0.0 **MCP Protocol Version**: 2024-11-05 **Last Updated**: 2025-11-05

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/funsjanssen/faker-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server