{
    "name": "@algorithm-atlas/mcp",
    "version": "1.0.0",
    "protocol": "Model Context Protocol (JSON-RPC 2.0 over HTTP POST + REST GET)",
    "endpoint": "https://afluidity.com/algorithm-atlas/api/mcp.php",
    "stats": {
        "algorithms": 1011,
        "categories": 20,
        "benchmarkFamilies": 10
    },
    "tools": [
        {
            "name": "search_algorithms",
            "description": "Search across all 1,011 algorithms in Algorithm Atlas by keyword, category, governance tier, or difficulty.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "Search keywords (algorithm name, concept, problem type, or tag)."
                    },
                    "category": {
                        "type": "string",
                        "description": "Optional category ID (e.g., 'pathfinding', 'sorting', 'searching', 'graph-traversal')."
                    },
                    "tier": {
                        "type": "string",
                        "enum": [
                            "foundation",
                            "core",
                            "extended",
                            "specialized"
                        ]
                    },
                    "difficulty": {
                        "type": "string",
                        "enum": [
                            "Beginner",
                            "Intermediate",
                            "Advanced"
                        ]
                    },
                    "limit": {
                        "type": "number",
                        "description": "Maximum results (1-50, default 10)."
                    }
                }
            }
        },
        {
            "name": "get_algorithm_details",
            "description": "Get the full source-checked profile of a specific algorithm (complexity, whenToUse, whenNotToUse, pitfalls, keyFormulas, pseudocode, canonicalExample, relationships, and citations).",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "idOrSlug": {
                        "type": "string",
                        "description": "Algorithm ID, slug, or exact name (e.g., 'a-star-search', 'quick-sort', 'd-star-lite')."
                    }
                },
                "required": [
                    "idOrSlug"
                ]
            }
        },
        {
            "name": "compare_algorithms",
            "description": "Compare 2 to 4 algorithms side-by-side across time/space complexity, best-fit guidance, and pitfalls.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "algorithmIds": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "List of 2-4 algorithm IDs or slugs."
                    }
                },
                "required": [
                    "algorithmIds"
                ]
            }
        },
        {
            "name": "recommend_algorithm_for_problem",
            "description": "Recommend the best-fitting algorithms for an engineering problem description and runtime constraints.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "problem": {
                        "type": "string",
                        "description": "Natural-language description of the engineering problem."
                    },
                    "category": {
                        "type": "string"
                    },
                    "constraints": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "limit": {
                        "type": "number"
                    }
                },
                "required": [
                    "problem"
                ]
            }
        },
        {
            "name": "get_benchmark_results",
            "description": "Retrieve empirical TypeScript V8 benchmark baselines across all 10 families (sorting, searching, graph-traversal, pathfinding, pattern-matching, data-structures, dynamic-programming, compression-hashing, numerical-signal, spatial-geometry), or pass runLive: true to execute rate-limited on-demand server timings.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "family": {
                        "type": "string",
                        "enum": [
                            "all",
                            "sorting",
                            "searching",
                            "graph-traversal",
                            "pathfinding",
                            "pattern-matching",
                            "data-structures",
                            "dynamic-programming",
                            "compression-hashing",
                            "numerical-signal",
                            "spatial-geometry"
                        ]
                    },
                    "runLive": {
                        "type": "boolean",
                        "description": "Set true to execute an on-demand PHP server micro-benchmark (rate-limited to 15 runs/min/IP and cached). Defaults to false (returns stored TypeScript V8 baselines across all 10 families)."
                    },
                    "inputSize": {
                        "type": "number",
                        "description": "Optional input size N (capped to 64..5000, default 1024) when runLive is true."
                    },
                    "inputProfile": {
                        "type": "string",
                        "description": "Optional workload distribution (e.g., 'random', 'sorted', 'reverse', 'many-duplicates')."
                    }
                }
            }
        },
        {
            "name": "find_relationship_lineage",
            "description": "Discover the shortest multi-hop relationship lineage between two algorithms or inspect the 1-hop typed ego-graph neighborhood across 4,839 directed edges.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "sourceIdOrSlug": {
                        "type": "string",
                        "description": "Starting algorithm ID, slug, or name (e.g., 'dijkstras-algorithm')."
                    },
                    "targetIdOrSlug": {
                        "type": "string",
                        "description": "Optional target algorithm ID, slug, or name (e.g., 'd-star-lite'). Omit to inspect 1-hop neighborhood."
                    },
                    "maxHops": {
                        "type": "number",
                        "description": "Maximum relationship hops to search (1-5, default 4)."
                    }
                },
                "required": [
                    "sourceIdOrSlug"
                ]
            }
        },
        {
            "name": "generate_implementation_starter",
            "description": "Retrieve TypeScript and Python 3 starter implementations, pseudocode steps, complexity invariants, and pitfalls for any algorithm in Algorithm Atlas.",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "idOrSlug": {
                        "type": "string",
                        "description": "Algorithm ID, slug, or exact name (e.g., 'knuth-morris-pratt', 'a-star-search')."
                    }
                },
                "required": [
                    "idOrSlug"
                ]
            }
        }
    ]
}