MCP.so
Sign In
Servers

AppDog

@rodolphebarbanneau

Compose and generate effortlessly MCP servers from any OpenAPI specifications

Overview

What is AppDog?

AppDog is a Python package that automatically generates fully typed async API clients and ready-to-use MCP (Model Context Protocol) servers from any OpenAPI specification. It simplifies working with OpenAPI-based APIs and managing multiple API clients in a single project with version locking.

How to use AppDog?

Install with uv add appdog, then use the CLI: initialize a project with appdog init, add an API client with appdog add NAME --uri URI, list clients with appdog list, show details with appdog show, and generate an MCP server with appdog mcp install. Generated clients are imported directly (e.g., import appdog.petstore) and can be used with async context managers.

Key features of AppDog

  • Generates fully typed async Python clients from OpenAPI specs
  • Creates ready-to-use MCP servers for API integrations
  • Manages multiple API clients with version locking
  • Simple CLI for adding, removing, and managing APIs
  • Supports custom authentication via environment variables or headers
  • Allows filtering methods and tags during client generation

Use cases of AppDog

  • Generate a typed client and MCP server for a public REST API in minutes
  • Compose multiple OpenAPI-based APIs into a single MCP server for AI agents
  • Quickly prototype API integrations with Claude Desktop via MCP

FAQ from AppDog

What runtime does AppDog require?

AppDog is a Python package installable via uv add appdog and supports Python 3.8+ (as shown on PyPI).

What MCP transports does AppDog support?

AppDog supports both stdio and sse transports, selectable with --transport when running appdog mcp run.

Are there known limitations?

Yes. Claude Desktop does not yet handle resource templates (resources with parameters). Windows users must manually edit the generated Claude configuration for MCP install (see related issue).

How does AppDog store project configuration?

Project settings and API client specifications are stored in an apps.yaml file, with a lock file apps.lock containing specs and hashes.

How can I manage API credentials?

Credentials are configured via environment variables in the format APPDOG_<CLIENT_NAME>_TOKEN or APPDOG_<CLIENT_NAME>_API_KEY.

Tags

More from Other