Mcp Sdk Utils
@metorial/mcp-sdk-utils
MCP SDK utilities for Metorial. Provides common utilities and helpers for MCP (Model Context Protocol) integration with AI SDK frameworks.
0 downloads
v2.0.0
Capabilities
tools
Installation
Quick Install
Install using the MCPSearch CLI (recommended)
mcp install @metorial/mcp-sdk-utilsDon't have the CLI? Install it first
Run with npx
Run directly without installing
npx -y @metorial/mcp-sdk-utilsManual Configuration
Add to your MCP client configuration file
CClaude Code / Claude Desktop
Add to ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-sdk-utils": {
"command": "npx",
"args": [
"-y",
"@metorial/mcp-sdk-utils"
]
}
}
}CuCursor
Add to ~/.cursor/mcp.json
{
"mcp": {
"servers": {
"mcp-sdk-utils": {
"command": "npx",
"args": [
"-y",
"@metorial/mcp-sdk-utils"
]
}
}
}
}VSVS Code / Continue.dev
Add to .vscode/mcp.json or Continue settings
{
"mcpServers": {
"mcp-sdk-utils": {
"command": "npx",
"args": [
"-y",
"@metorial/mcp-sdk-utils"
]
}
}
}About
# @metorial/mcp-sdk-utils
MCP SDK utilities for Metorial. Provides common utilities and helpers for MCP (Model Context Protocol) integration with AI SDK frameworks.
## Installation
```bash
npm install @metorial/mcp-sdk-utils
# or
yarn add @metorial/mcp-sdk-utils
# or
pnpm add @metorial/mcp-sdk-utils
# or
bun add @metorial/mcp-sdk-utils
```
## Usage
### Basic AI SDK Integration
```typescript
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
// Initialize Metorial
let metorial = new Metorial({
apiKey: 'your-metorial-api-key'
});
// Use with AI SDK
metorial.withProviderSession(
metorialAiSdk,
{
serverDeployments: ['your-server-deployment-id']
},
async session => {
let result = await generateText({
model: openai('gpt-4o'),
prompt: 'Summarize the latest news about AI developments',
maxSteps: 10,
tools: session.tools
});
console.log(result.text);
}
);
```
### Advanced Tool Usage
```typescript
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
import { generateText, streamText } from 'ai';
import { openai } from '@ai-sdk/openai';
let metorial = new Metorial({
apiKey: 'your-metorial-api-key'
});
// Streaming with tools
metorial.withProviderSession(
metorialAiSdk,
{
serverDeployments: ['your-server-deployment-id']
},
async session => {
let { textStream } = await streamText({
model: openai('gpt-4o'),
prompt: 'Research the latest developments in quantum computing',
maxSteps: 15,
tools: session.tools
});
for await (let chunk of textStream) {
process.stdout.write(chunk);
}
}
);
```
### Custom Tool Configuration
```typescript
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
import { generateText } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
let metorial = new Metorial({
apiKey: 'your-metorial-api-key'
});
// Configure session with specific tools
metorial.withProviderSession(
metorialAiSdk,
{
serverDeployments: ['your-server-deployment-id'],
// Optional: Filter specific tools
toolFilter: tool => tool.name.startsWith('search')
},
async session => {
console.log(
'Available tools:',
session.tools.map(t => t.name)
);
let result = await generateText({
model: anthropic('claude-3-sonnet-20240229'),
prompt: 'Find information about renewable energy trends',
maxSteps: 8,
tools: session.tools
});
console.log('Result:', result.text);
}
);
```
### Error Handling
```typescript
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
let metorial = new Metorial({
apiKey: 'your-metorial-api-key'
});
try {
await metorial.withProviderSession(
metorialAiSdk,
{
serverDeployments: ['your-server-deployment-id']
},
async session => {
let result = await generateText({
model: openai('gpt-4o'),
prompt: 'Analyze the current market trends',
maxSteps: 10,
tools: session.tools
});
return result.text;
}
);
} catch (error) {
if (error.code === 'TOOL_EXECUTION_ERROR') {
console.error('Tool execution failed:', error.message);
} else if (error.code === 'SESSION_ERROR') {
console.error('Session error:', error.message);
} else {
console.error('Unexpected error:', error);
}
}
```
### React Component Integration
```typescript
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
import { useChat } from 'ai/react';
import { openai } from '@ai-sdk/openai';
function ChatComponent() {
let metorial = new Metorial({
apiKey: 'your-metorial-api-key'
});
let { messages, input, handleInputChange, handleSubmit, isLoading } = useChat({
api: '/api/chat',
body: {
metorialConfig: {
provider: metorialAiSdk,
serverDeployments: ['your-server-deployment-id']
}
}
});
return (
<div>
<div className="messages">
{messages.map(message => (
<div key={message.id}>
<strong>{message.role}:</strong> {message.content}
</div>
))}
</div>
<form onSubmit={handleSubmit}>
<input
value={input}
onChange={handleInputChange}
placeholder="Ask me anything..."
disabled={isLoading}
/>
<button type="submit" disabled={isLoading}>
Send
</button>
</form>
</div>
);
}
```
### API Route Handler
```typescript
// pages/api/chat.ts
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
import { openai, streamText } from 'ai';
import { NextRequest } from 'next/server';
export async function POST(req: NextRequest) {
let { messages, metorialConfig } = await req.json();
let metorial = new Metorial({
apiKey: process.env.METORIAL_API_KEY!
});
return metorial.withProviderSession(
metorialAiSdk,
{
serverDeployments: metorialConfig.serverDeployments
},
async session => {
let { textStream } = await streamText({
model: openai('gpt-4o'),
messages,
maxSteps: 10,
tools: session.tools
});
return textStream;
}
);
}
```
### Tool Discovery and Inspection
```typescript
import { metorialAiSdk } from '@metorial/mcp-sdk-utils';
import { Metorial } from '@metorial/sdk';
let metorial = new Metorial({
apiKey: 'your-metorial-api-key'
});
// Inspect available tools
metorial.withProviderSession(
metorialAiSdk,
{
serverDeployments: ['your-server-deployment-id']
},
async session => {
console.log('Available tools:');
session.tools.forEach(tool => {
console.log(`- ${tool.name}: ${tool.description}`);
if (tool.function?.parameters) {
console.log(` Parameters:`, tool.function.parameters);
}
});
// Test a specific tool
let searchTool = session.tools.find(t => t.name === 'searchContext');
if (searchTool) {
let result = await searchTool.call({
query: 'metorial AI tools',
maxResults: 3
});
console.log('Tool test result:', result);
}
}
);
```
## API Reference
### `metorialAiSdk`
The main integration function that provides MCP tools to AI SDK frameworks.
**Usage:** Pass to `metorial.withProviderSession()` as the provider parameter.
**Returns:** Session object with tools compatible with AI SDK.
### Session Object
The session object provides:
- `tools`: Array of MCP tools compatible with AI SDK
- `callTools(toolCalls)`: Function to execute tool calls
### Tool Object
Each tool in the session has:
- `name`: Tool name
- `description`: Tool description
- `function`: Tool function definition with parameters
- `call(args)`: Function to call the tool directly
## License
MIT License - see [LICENSE](../../LICENSE) file for details.
Reviews
No reviews yet. Be the first to review this package!
Quick Install
Install using the MCPSearch CLI (recommended)
mcp install @metorial/mcp-sdk-utilsDon't have the CLI? Install it first
Run with npx
Run directly without installing
npx -y @metorial/mcp-sdk-utilsManual Configuration
Add to your MCP client configuration file
CClaude Code / Claude Desktop
Add to ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-sdk-utils": {
"command": "npx",
"args": [
"-y",
"@metorial/mcp-sdk-utils"
]
}
}
}CuCursor
Add to ~/.cursor/mcp.json
{
"mcp": {
"servers": {
"mcp-sdk-utils": {
"command": "npx",
"args": [
"-y",
"@metorial/mcp-sdk-utils"
]
}
}
}
}VSVS Code / Continue.dev
Add to .vscode/mcp.json or Continue settings
{
"mcpServers": {
"mcp-sdk-utils": {
"command": "npx",
"args": [
"-y",
"@metorial/mcp-sdk-utils"
]
}
}
}Compatible With
Claude CodeCursorWindsurfContinue.dev
Details
- Version
- 2.0.0
- License
- MIT
- Category
- ai
- MCP Version
- 1.0
- Published
- 7/22/2025
- Updated
- 2/26/2026