public-apis-mcp


Namepublic-apis-mcp JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryMCP server exposing a catalog of free APIs with embedding-based lookups
upload_time2025-08-17 15:04:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords mcp model context protocol public free api apis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## Public APIs MCP

Catalog of free public APIs with semantic search.

## 🎯 Features

- `search_public_apis`: embedding-based search over API names and descriptions
- `get_public_api_details`: retrieve full details by `id`
- Resources: `public-apis://apis`, `public-apis://api/{id}`

## 🔧 Setup (uv)

Add to MCP clients (e.g., Claude Desktop) using uv.

### Claude Desktop

macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "public-apis": {
      "command": "uvx",
      "args": ["public-apis-mcp"]
    }
  }
}
```

## 🚀 Usage

- Build embeddings index (optional; auto-build on first search):
```bash
uvx public-apis-mcp build-index
```
- Run the MCP server over STDIO:
```bash
uvx public-apis-mcp run
```

## 📋 Tool Reference

### `search_public_apis`
- Purpose: Semantic search over the catalog
- Parameters: `query` (str), `limit` (int, default 5)
- Returns: list of `{ id, name, score, snippet }`

Example call payload:
```json
{ "name": "search_public_apis", "arguments": { "query": "weather", "limit": 5 } }
```

### `get_public_api_details`
- Purpose: Fetch full details by `id`
- Parameters: `id` (str)
- Returns: `ApiItem`

Example call payload:
```json
{ "name": "get_public_api_details", "arguments": { "id": "a6b3a6b3-a6b3-a6b3-a6b3-a6b3a6b3a6b3" } }
```

## 🛠️ Development

Prerequisites:
- Python 3.10+
- uv (`https://docs.astral.sh/uv/`)

Setup:
```bash
uv sync --dev
```

Run tests:
```bash
FREE_APIS_MCP_TEST_MODE=1 uv run pytest -q
```

Lint and format:
```bash
uv run ruff check --fix
uv run ruff format
```

Type checking:
```bash
uv run mypy src/
```

### MCP Client Dev Config

```json
{
  "mcpServers": {
    "public-apis-dev": {
      "command": "uv",
      "args": [
        "--directory",
        "<abs_path>/public-apis-mcp",
        "run",
        "public-apis-mcp"
      ]
    }
  }
}
```

### Build and Try

```bash
uv build
uv run --with dist/*.whl public-apis-mcp --help
```


## 📦 Data & Index

- Data: `src/public_apis_mcp/datastore/free_apis.json`
- Embedding index: `src/public_apis_mcp/datastore/index.npz` (auto-built)

## Testing with MCP Inspector

For exploring and/or developing this server, use the MCP Inspector npm utility:

```bash
# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Run local development server with the inspector
npx @modelcontextprotocol/inspector uv run public-apis-mcp

# Run PyPI production server with the inspector
npx @modelcontextprotocol/inspector uvx public-apis-mcp
```


## 📝 License

MIT License - see [LICENSE](LICENSE) file for details.

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "public-apis-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "mcp, model context protocol, public, free, api, apis",
    "author": null,
    "author_email": "Alexander Galea <alex@galea.dev>",
    "download_url": "https://files.pythonhosted.org/packages/e0/cc/aee2ce782201aaafdbb0029e2c3e15e41d65e6f7a3843e8a4be148c7de83/public_apis_mcp-0.1.0.tar.gz",
    "platform": null,
    "description": "## Public APIs MCP\n\nCatalog of free public APIs with semantic search.\n\n## \ud83c\udfaf Features\n\n- `search_public_apis`: embedding-based search over API names and descriptions\n- `get_public_api_details`: retrieve full details by `id`\n- Resources: `public-apis://apis`, `public-apis://api/{id}`\n\n## \ud83d\udd27 Setup (uv)\n\nAdd to MCP clients (e.g., Claude Desktop) using uv.\n\n### Claude Desktop\n\nmacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"public-apis\": {\n      \"command\": \"uvx\",\n      \"args\": [\"public-apis-mcp\"]\n    }\n  }\n}\n```\n\n## \ud83d\ude80 Usage\n\n- Build embeddings index (optional; auto-build on first search):\n```bash\nuvx public-apis-mcp build-index\n```\n- Run the MCP server over STDIO:\n```bash\nuvx public-apis-mcp run\n```\n\n## \ud83d\udccb Tool Reference\n\n### `search_public_apis`\n- Purpose: Semantic search over the catalog\n- Parameters: `query` (str), `limit` (int, default 5)\n- Returns: list of `{ id, name, score, snippet }`\n\nExample call payload:\n```json\n{ \"name\": \"search_public_apis\", \"arguments\": { \"query\": \"weather\", \"limit\": 5 } }\n```\n\n### `get_public_api_details`\n- Purpose: Fetch full details by `id`\n- Parameters: `id` (str)\n- Returns: `ApiItem`\n\nExample call payload:\n```json\n{ \"name\": \"get_public_api_details\", \"arguments\": { \"id\": \"a6b3a6b3-a6b3-a6b3-a6b3-a6b3a6b3a6b3\" } }\n```\n\n## \ud83d\udee0\ufe0f Development\n\nPrerequisites:\n- Python 3.10+\n- uv (`https://docs.astral.sh/uv/`)\n\nSetup:\n```bash\nuv sync --dev\n```\n\nRun tests:\n```bash\nFREE_APIS_MCP_TEST_MODE=1 uv run pytest -q\n```\n\nLint and format:\n```bash\nuv run ruff check --fix\nuv run ruff format\n```\n\nType checking:\n```bash\nuv run mypy src/\n```\n\n### MCP Client Dev Config\n\n```json\n{\n  \"mcpServers\": {\n    \"public-apis-dev\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"<abs_path>/public-apis-mcp\",\n        \"run\",\n        \"public-apis-mcp\"\n      ]\n    }\n  }\n}\n```\n\n### Build and Try\n\n```bash\nuv build\nuv run --with dist/*.whl public-apis-mcp --help\n```\n\n\n## \ud83d\udce6 Data & Index\n\n- Data: `src/public_apis_mcp/datastore/free_apis.json`\n- Embedding index: `src/public_apis_mcp/datastore/index.npz` (auto-built)\n\n## Testing with MCP Inspector\n\nFor exploring and/or developing this server, use the MCP Inspector npm utility:\n\n```bash\n# Install MCP Inspector\nnpm install -g @modelcontextprotocol/inspector\n\n# Run local development server with the inspector\nnpx @modelcontextprotocol/inspector uv run public-apis-mcp\n\n# Run PyPI production server with the inspector\nnpx @modelcontextprotocol/inspector uvx public-apis-mcp\n```\n\n\n## \ud83d\udcdd License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "MCP server exposing a catalog of free APIs with embedding-based lookups",
    "version": "0.1.0",
    "project_urls": {
        "Changelog": "https://github.com/zazencodes/public-apis-mcp/blob/main/CHANGELOG.md",
        "Homepage": "https://pypi.org/project/public-apis-mcp/",
        "Repository": "https://github.com/zazencodes/public-apis-mcp"
    },
    "split_keywords": [
        "mcp",
        " model context protocol",
        " public",
        " free",
        " api",
        " apis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a46263003ae1db6f86ed444e247e0e723e97a10a1f72df9a7f34b588bde66783",
                "md5": "aba18e3e5a41b9d2ec5574fe98cc2045",
                "sha256": "73d8bdcc3084b6c272f6340957faeb8c2edb8c9ed1a3e689407d5ee3e9d024d1"
            },
            "downloads": -1,
            "filename": "public_apis_mcp-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "aba18e3e5a41b9d2ec5574fe98cc2045",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 2129391,
            "upload_time": "2025-08-17T15:04:30",
            "upload_time_iso_8601": "2025-08-17T15:04:30.765468Z",
            "url": "https://files.pythonhosted.org/packages/a4/62/63003ae1db6f86ed444e247e0e723e97a10a1f72df9a7f34b588bde66783/public_apis_mcp-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e0ccaee2ce782201aaafdbb0029e2c3e15e41d65e6f7a3843e8a4be148c7de83",
                "md5": "d509a53187afe6293b3c6e4383f1b770",
                "sha256": "7ac1c58d7fea86370d80c9cb5ca314e2d24036d01b1e69ecbe57e889f75a77bd"
            },
            "downloads": -1,
            "filename": "public_apis_mcp-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d509a53187afe6293b3c6e4383f1b770",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 2128195,
            "upload_time": "2025-08-17T15:04:32",
            "upload_time_iso_8601": "2025-08-17T15:04:32.518318Z",
            "url": "https://files.pythonhosted.org/packages/e0/cc/aee2ce782201aaafdbb0029e2c3e15e41d65e6f7a3843e8a4be148c7de83/public_apis_mcp-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-17 15:04:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "zazencodes",
    "github_project": "public-apis-mcp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "public-apis-mcp"
}
        
Elapsed time: 1.37544s