Skip to content

[CEP-15] Common Tool Schemas #15

@ContextVM-org

Description

@ContextVM-org

Preamble

  • Title: Common Tool Schemas
  • Authors: ContextVM-org
  • Status: Draft

Abstract

This CEP establishes a standard for defining and discovering common tool schemas in ContextVM, enabling interoperability by allowing multiple servers to implement standardized tool interfaces. Using MCP's _meta field, RFC 8785 for deterministic hashing, and CEP-6 announcements for discovery, this creates a marketplace where users can choose between multiple providers implementing the same standard tool interface.

Motivation

Enables a marketplace for common services in ContextVM. When servers implement similar functionality (translation, weather, search), clients currently cannot discover equivalent services, switch providers without code changes, or build specialized UIs for standard tool types. Common tool schemas enable provider competition, user choice, and seamless interoperability.

Specification

The proposal introduces a reference server pattern where servers define canonical tool schemas identified by (serverPubkey, toolName). Implementing servers can then conform to these schemas. Schema verification uses RFC 8785 JCS for deterministic hashing. Discovery leverages CEP-6 announcements with D (defines) and I (implements) tags. The full specification is available in the accompanying PR.

Rationale

This design aligns with MCP's architecture by using the existing _meta field for extensibility and server-based versioning. It avoids creating new event kinds by leveraging CEP-6 announcements. The server-anchored approach ensures canonical authority while enabling decentralized discovery. The hash includes tool names to guarantee interoperability across implementations.

Backwards Compatibility

Fully backward compatible: existing clients ignore _meta fields and use tools normally, existing servers work without modifications, and CEP-6 tags are additive. The _meta field is part of the MCP specification, ensuring no breaking changes.

Readable spec

Resolves: #14

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions