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.
This commit is contained in:
parent
0b2658f5b0
commit
cc7b6cde44
1 changed files with 0 additions and 109 deletions
109
README.md
109
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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue