Skip to main content

ConveniencePro Tool Protocol (CTP)

Version 1.0.0 | GitHub CTP is an open specification for building browser-native developer tools that are inherently compatible with the Model Context Protocol (MCP). It enables developers to create tools that work seamlessly in web browsers while maintaining full interoperability with AI-powered development environments.

Why CTP?

Browser-Native

Tools execute directly in the browser using Web APIs, ensuring privacy and eliminating server dependencies.

MCP Compatible

Automatic conversion to MCP format enables integration with Claude, Cursor, and other AI tools.

Type-Safe

Full TypeScript support with comprehensive schemas and validation.

LLM-Ready

Built-in AI hints and instructions help LLMs use your tools effectively.

Quick Example

import type { ToolDefinition, ToolFunction } from '@conveniencepro/ctp-core';

export const myToolDefinition: ToolDefinition = {
  id: 'hello-world',
  name: 'Hello World',
  description: 'A simple greeting tool',
  category: 'utilities',
  tags: ['hello', 'greeting', 'demo'],
  method: 'POST',
  parameters: [
    {
      name: 'name',
      type: 'text',
      label: 'Your Name',
      description: 'Name to greet',
      required: true,
    },
  ],
  outputDescription: 'Greeting message',
  example: {
    input: { name: 'World' },
    output: { message: 'Hello, World!' },
  },
  executionMode: 'client',
};

export const myToolFn: ToolFunction<{ message: string }> = (params) => {
  return {
    success: true,
    data: { message: `Hello, ${params.name}!` },
  };
};

Architecture

npm Packages

PackageDescription
@conveniencepro/ctp-coreCore types and validation
@conveniencepro/ctp-runtimeTool execution engine
@conveniencepro/ctp-discoveryDiscovery document generators
@conveniencepro/ctp-sdkEmbeddable SDK
@conveniencepro/ctp-specSpecification constants
@conveniencepro/ctp-examplesExample tool implementations
@conveniencepro/ctp-mcp-serverMCP server for AI-powered tool generation

Get Started