EM

edanyal/mcp-client

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

30 stars 3 forks Качество 54 Тренд 11

Клиентская библиотека Typescript mcp.

Обзор

Реализация TypeScript клиента Model Context Protocol (MCP) для агентов LLM. - Полная реализация спецификации MCP - Поддержка как переносов stdio, так и HTTP+SSE - Встроенное управление процессами сервера MCP - Интеграция с нативным вызовом инструмента Claude - Type-safe API - Архитектура на основе событий - Promise-based async/await API - Поддержка всех операций MCP: - Ресурсы - Инструменты - Оперативность - Выборка Наиболее распространенным способом использования MCP-клиента является использование стандартных MCP-серверов через npx. Создание файла конфигурации (mcp-config).

Обзор (машинный перевод)

Реализация TypeScript клиента Model Context Protocol (MCP) для агентов LLM.

##Установка

Особенности

Полная реализация спецификации MCP Поддержка как стрио, так и HTTP+SSE Встроенный MCP-сервер управления процессами Интеграция с родным инструментом Клода

  • Безопасный API
  • Архитектура, основанная на событиях Обещание на основе Async/await API Поддержка всех операций MCP:
  • Ресурсы
  • Инструменты
  • Быстрые.
  • Отбор проб

Использование

Использование серверов MCP

Наиболее распространенным способом использования MCP-клиента является использование стандартных MCP-серверов через npx. Создайте конфигурационный файл ([T0]):

Затем используйте MCPConnectionManager для подключения к серверам:

Интеграция с Клодом

Клиент предназначен для бесперебойной работы с нативным инструментом Клода, вызывающим:

Низкоуровневое использование

Если вам нужно больше контроля, вы можете использовать клиент напрямую:

Доступные MCP-серверы

Общие серверы MPC, доступные через npx:

  • @modelcontextprotocol/server-memory - операции графа знаний
  • @modelcontextprotocol/server-filesystem - Операции файловой системы @modelcontextprotocol/server-brave-search - Возможности веб-поиска

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

MCP Client

A TypeScript implementation of a Model Context Protocol (MCP) client for LLM agents.

Installation

npm install mcp-client

Features

  • Full implementation of the MCP specification
  • Support for both stdio and HTTP+SSE transports
  • Built-in MCP server process management
  • Integration with Claude’s native tool calling
  • Type-safe API
  • Event-based architecture
  • Promise-based async/await API
  • Support for all MCP operations:
    • Resources
    • Tools
    • Prompts
    • Sampling

Usage

Using with MCP Servers

The most common way to use MCP Client is with standard MCP servers via npx. Create a configuration file (mcp-config.json):

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed/directory"
      ]
    },
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ],
      "env": {
        "BRAVE_API_KEY": "your-api-key"
      }
    }
  }
}

Then use the MCPConnectionManager to connect to your servers:

import { MCPConnectionManager } from 'mcp-client';

const manager = new MCPConnectionManager();
await manager.initialize('./mcp-config.json');

// Get clients for specific servers
const memoryClient = manager.getClient('memory');
const fsClient = manager.getClient('filesystem');

// Use tools from the servers
const memoryTools = await memoryClient?.listTools();
const fsTools = await fsClient?.listTools();

// Clean up when done
await manager.cleanup();

Integration with Claude

The client is designed to work seamlessly with Claude’s native tool calling:

import { Anthropic } from '@anthropic-ai/sdk';
import { MCPConnectionManager } from 'mcp-client';

// Initialize Claude and MCP
const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
const manager = new MCPConnectionManager();
await manager.initialize('./mcp-config.json');

// Get a client
const memoryClient = manager.getClient('memory');
const tools = await memoryClient?.listTools();

// Use with Claude
const response = await anthropic.messages.create({
  model: 'claude-3-sonnet-20240229',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'your prompt' }],
  tools: tools?.map(tool => ({
    name: tool.name,
    description: tool.description || '',
    parameters: tool.inputSchema
  }))
});

// Handle tool calls
if (!response.content[0].text && response.content[0].type === 'tool_call') {
  const toolCall = response.content[0].tool_calls[0];
  const result = await memoryClient?.callTool(
    toolCall.name,
    toolCall.parameters
  );
  // Send result back to Claude...
}

Low-level Usage

If you need more control, you can use the client directly:

Открыть полный README на GitHub

Установка

npx -y @modelcontextprotocol/server-memory
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "memory": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-memory" ] }, "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/directory" ] }, "brave-search": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-brave-search" ], "env": { "BRAVE_API_KEY": "your-api-key" } } } }