back to reflections

A Simplified Approach to Model Context Protocol Services

The Model Context Protocol (MCP) offers a robust framework for enabling rich, stateful interactions between AI models and external services. However, implementing the full protocol can present hurdles. This proposal details "MCP Lite", a streamlined extension designed to drastically lower the barrier to entry for integrating services into MCP-compatible ecosystems. It borrows successful concepts from simplified approaches like OpenAI's AI Plugins while preserving compatibility and a pathway to the full MCP specification for more complex needs. The core aim is to make integrating common external capabilities significantly easier and faster.

Motivation: Addressing Full MCP Implementation Hurdles

While powerful, the full MCP specification often requires developers to implement and host a dedicated intermediary server specifically for MCP communication. This presents several challenges, particularly for simpler integrations:

  1. Infrastructure Complexity & Cost: Deploying and managing a dedicated MCP server, even if it primarily acts as a proxy to an existing API, introduces significant operational overhead (compute resources, monitoring, maintenance) and potential points of failure. This is often disproportionate to the task of simply exposing a few API endpoints.
  2. Development & Maintenance Overhead: Building, testing, and maintaining these intermediary MCP services requires dedicated development cycles, diverting resources from enhancing the core service itself. Protocol updates or changes necessitate further maintenance.
  3. Security & Privacy Concerns: Each additional service in the chain (the intermediary MCP server) increases the potential attack surface (supply chain vulnerabilities). Furthermore, proxying data through an extra layer can introduce complexities regarding data handling, logging, and privacy compliance.
  4. Onboarding Friction & Adoption Velocity: The requirement to build a dedicated service can deter developers, especially smaller teams or those wanting to quickly experiment with integrating their existing APIs into AI platforms. This friction can slow down the growth and richness of the MCP ecosystem.

Proposal: MCP Lite - Declarative, Client-Centric Integration

MCP Lite fundamentally shifts the integration model from requiring a dedicated server per integration to using a declarative definition interpreted by the MCP client (e.g., the AI chat application, orchestration engine).

Core Idea: Instead of building an MCP server, a service provider exposes a standardized JSON definition file, typically hosted at a well-known URL (e.g., /.well-known/mcp.json). This file describes how the client should interact directly with the service's existing API endpoints and handle other integration aspects.

Client Responsibility: The MCP client takes on the role of dynamically configuring the integration:

  1. Discovery: Locates the mcp.json file using the service's base URL.
  2. Interpretation: Parses the JSON definition, understanding the available functions, required authentication, and other interaction protocols described within.
  3. Dynamic Provisioning & Interaction: Based on the parsed definition, the client dynamically sets up the necessary logic to:
    • Make direct calls to the target service's API endpoints.
    • Handle the specified authentication flow (e.g., prompting the user for OAuth, injecting API keys securely).
    • Listen for or poll for notifications if defined.
    • Manage session context as per the definition's guidelines. Essentially, the client acts as a just-in-time, lightweight MCP interface for the specific service, without the need for a pre-deployed, persistent intermediary server provided by the service owner.

Definition Capabilities (Illustrative Examples): The schema within mcp-lite.json would define the contract:

  • API Interface: References an OpenAPI (Swagger) specification (or a simplified inline definition) detailing available functions, parameters, expected responses, and the base URL for the target API endpoints.
    • Example Field: "api": { "type": "openapi", "url": "<https://service.com/openapi.yaml>" }
  • Authentication: Specifies the required method(s) and necessary details for the client to manage authentication.
    • Example Field: "auth": { "type": "oauth", "client_url": "...", "authorization_url": "...", "scope": "..." } or "auth": { "type": "api_key", "header": "X-API-KEY", "instructions": "Provide your API key..."}
  • Notifications: Defines how the service can push information back (if needed). This might involve client-side polling of a specified endpoint, WebSocket connection details, or instructions for setting up webhooks managed by the client platform.
    • Example Field: "notifications": { "type": "webhook", "verification_token": "...", "event_types": [...] } (where the client platform provides the webhook URL).
  • Session Management: Provides hints or requirements for how context or session state should be maintained across interactions (e.g., passing specific IDs, required headers).
    • Example Field: "session": { "required_header": "X-Session-ID" }
  • Metadata: Includes human-readable names, descriptions, logos, contact information, and legal links for display in the client application.
    • Example Field: "metadata": { "name_for_human": "Example Service", "description_for_human": "...", "logo_url": "...", "contact_email": "..." }

Benefits of MCP Lite

  • Drastically Simplified Onboarding: The primary requirement for developers is creating the static mcp.json file and ensuring their existing API is accessible. This significantly reduces the technical barrier compared to building a full MCP server.
  • Reduced Infrastructure Costs & Complexity: Eliminates the need for service providers to host and maintain dedicated intermediary MCP server instances for many common integrations.
  • Lower Maintenance: Maintenance focuses on the core API and the definition file, not a separate protocol adaptation layer.
  • Improved Security & Privacy Footprint: Direct client-to-service interaction reduces the number of intermediaries, potentially shrinking the attack surface and simplifying data flow for privacy considerations.
  • Addresses Common Use Cases: Effectively covers the frequent scenario where the primary goal is exposing existing API functions to an AI model with standard authentication.
  • Seamless Path to Full MCP: MCP Lite acts as a compatible entry point. Services discovering a need for more advanced features (complex state machines, custom orchestration logic, server-side event processing beyond simple notifications) can transition to implementing a full MCP server without disrupting the ecosystem. Clients could potentially interact with both MCP Lite definitions and full MCP servers.

Conclusion

MCP Lite presents a pragmatic and efficient enhancement to the Model Context Protocol ecosystem. By adopting a declarative, client-interpreted integration pattern inspired by proven concepts like AI Plugins, it dramatically lowers the complexity and overhead for the most frequent integration needs. This approach fosters wider adoption, enables faster innovation, and allows developers to focus on their core service value while still benefiting from integration into advanced AI interaction models under the MCP umbrella. It complements the full MCP specification by providing a much-needed lightweight on-ramp.