From cc7b6cde440be36308193eeff272a62d3232865f Mon Sep 17 00:00:00 2001 From: Joan Xie Date: Fri, 22 Aug 2025 13:08:57 -0700 Subject: [PATCH] Remove 'For App Developers' section from README This section was added alongside the rename but is not necessary for the dxt -> mcpb rename itself. Removing to keep the rename commit focused on just the naming changes. --- README.md | 109 ------------------------------------------------------ 1 file changed, 109 deletions(-) diff --git a/README.md b/README.md index 7e16717..8d750ad 100644 --- a/README.md +++ b/README.md @@ -124,115 +124,6 @@ bundle.mcpb (ZIP file) - Include all required shared libraries if dynamic linking used - Test on clean systems without development tools -# For App Developers - -Supporting MCPB bundles in your application involves three key steps: - -1. **Load and validate the bundle manifest** -2. **Extract the bundle contents to a secure location** -3. **Launch the MCP server with the appropriate configuration** - -## Installation - -```sh -npm install @anthropic-ai/mcpb -``` - -## Basic Usage - -```typescript -import { loadConfig, runMcp } from "@anthropic-ai/mcpb"; - -// Load a bundle configuration -const config = await loadConfig("/path/to/bundle.mcpb", { - userConfigValues: { - // Optional: provide user configuration values - apiKey: "user-api-key", - }, -}); - -// Run the MCP server -const transport = await runMcp(config, { - serverParams: config.serverParams, - serverPath: config.extractedPath, - env: { - // Optional: additional environment variables - ...process.env, - ...config.env, - }, -}); - -// Use the transport with the MCP SDK client -import { Client } from "@modelcontextprotocol/sdk/client/index.js"; -import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js"; - -const client = new Client( - { - name: "example-app", - version: "1.0.0", - }, - { - capabilities: {}, - }, -); - -await client.connect(transport); - -// List available tools -const tools = await client.listTools(); -console.log("Available tools:", tools); -``` - -## Features - -### Manifest Validation - -All manifests are validated against the schema to ensure compatibility: - -```typescript -import { validateManifest } from "@anthropic-ai/mcpb"; - -const isValid = validateManifest("/path/to/manifest.json"); -``` - -### Signature Verification - -MCPB bundles can be digitally signed for security. The library includes functions for verifying signatures: - -```typescript -import { verifyMcpbFile } from "@anthropic-ai/mcpb/node"; - -const signatureInfo = await verifyMcpbFile("/path/to/bundle.mcpb"); -if (signatureInfo.status === "signed") { - console.log("Bundle signed by:", signatureInfo.publisher); -} -``` - -### User Configuration - -Bundles can define configuration options that users need to provide: - -```typescript -const config = await loadConfig("/path/to/bundle.mcpb", { - userConfigValues: { - apiKey: "user-provided-key", - dataPath: "/path/to/data", - }, -}); -``` - -## Security Considerations - -1. **Extraction Location**: Always extract bundles to a secure, isolated directory -2. **Path Validation**: The library includes protection against zip slip attacks -3. **Process Isolation**: Run MCP servers in isolated processes with limited permissions -4. **Environment Variables**: Be careful about which environment variables are passed to servers -5. **Signature Verification**: Consider requiring signed bundles in production - -## API Reference - -See the [TypeScript definitions](src/index.ts) for complete API documentation. - # Contributing We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.