Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 48 additions & 1 deletion packages/mcp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A Model Context Protocol (MCP) server for TON blockchain wallet operations. Buil
- **NFTs**: List, inspect, and transfer NFTs
- **DNS**: Resolve `.ton` domains and reverse-lookup addresses
- **Known Jettons**: Built-in directory of popular tokens
- **Dual Transport**: Stdio (default) and HTTP server modes
- **Multiple Transports**: Stdio (default), HTTP server, and serverless modes

## Quick Start

Expand Down Expand Up @@ -182,6 +182,53 @@ Reverse-resolve a TON wallet address to its `.ton` domain.
#### `get_known_jettons`
Get a list of known/popular Jettons on TON with their addresses and metadata. Useful for looking up token addresses for swaps or transfers.

## Serverless Deployment

The package exports a `@ton/mcp/serverless` entry point for deploying as a serverless function (AWS Lambda, Vercel, Cloudflare Workers, etc.). Credentials are passed via request headers instead of environment variables.

### Headers

| Header | Description |
|-----------------|----------------------------------------------------------|
| `MNEMONIC` | 24-word mnemonic phrase |
| `PRIVATE_KEY` | Hex-encoded private key (takes priority over `MNEMONIC`) |
| `NETWORK` | `mainnet` (default) or `testnet` |
| `TONCENTER_KEY` | Optional TonCenter API key for higher rate limits |

### AWS Lambda

```typescript
import { createServerlessHandler } from '@ton/mcp/serverless';

export const handler = createServerlessHandler();
```

### Vercel

```typescript
import { createServerlessHandler } from '@ton/mcp/serverless';

export default createServerlessHandler();
```

### Custom Integration

```typescript
import { createServerlessHandler } from '@ton/mcp/serverless';

const handle = createServerlessHandler();

const response = await handle({
method: 'POST',
url: '/mcp',
headers: {
'MNEMONIC': 'word1 word2 word3 ...',
'NETWORK': 'mainnet',
},
body: mcpRequestBody,
});
```

## Development

```bash
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ton/mcp",
"version": "0.1.11",
"version": "0.1.12",
"description": "TON MCP Server - Model Context Protocol server for TON blockchain wallet operations",
"license": "MIT",
"type": "module",
Expand Down
6 changes: 3 additions & 3 deletions packages/mcp/rolldown.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default defineConfig([
entryFileNames: '[name].cjs',
},
platform: 'node',
external: [/^@modelcontextprotocol/, /^zod/],
external: [],
},
{
input: 'src/index.ts',
Expand All @@ -21,7 +21,7 @@ export default defineConfig([
entryFileNames: '[name].js',
},
platform: 'node',
external: [/^@modelcontextprotocol/, /^zod/],
external: [],
},
{
input: 'src/cli.ts',
Expand All @@ -32,7 +32,7 @@ export default defineConfig([
banner: '#!/usr/bin/env node',
},
platform: 'node',
external: [/^@modelcontextprotocol/, /^zod/],
external: [],
},
{
input: 'src/serverless.ts',
Expand Down
Loading