К основному содержанию
скилл CX Codex

dspy-mcp-tool-integration — скилл для Claude Code

Скилл показывает, как подключить MCP-сервер к DSPy: конвертировать его инструменты в dspy.Tool и вызывать их из async-агента.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add OmidZamani/dspy-skills --skill dspy-mcp-tool-integration -a claude-code
Открыть на GitHub

Что делает dspy-mcp-tool-integration

Скилл описывает связку MCP Python-клиента и DSPy. Вы открываете ClientSession, получаете список инструментов через list_tools() и превращаете каждый в dspy.Tool.from_mcp_tool. Дальше эти инструменты идут в dspy.ReAct, который вызывает их по ходу решения задачи.

Внутри два готовых примера: streamable HTTP-сервер на http://localhost:8000/mcp и локальный stdio-сервер через StdioServerParameters. Оба построены на asyncio, поэтому запускать агента нужно через acall(), а не обычный вызов. Сессию инициализируют до list_tools().

Важный момент: DSPy конвертирует инструменты, но не управляет соединением. ClientSession должен жить всё время, пока используются созданные из него dspy.Tool — закроете сессию раньше, и вызовы посыплются. Для установки нужен extra dspy[mcp] версии от 3.2.1 до 3.3.

Какие задачи решает

  • подключить MCP-сервер к DSPy-агенту
  • превратить инструменты MCP в dspy.Tool
  • собрать ReAct-агента поверх MCP-инструментов
  • запустить локальный stdio MCP-сервер из Python
  • вызвать асинхронные инструменты через acall()

Примеры запросов агенту

  • Подключи MCP-сервер на http://localhost:8000/mcp и заверни его инструменты в dspy.Tool
  • Собери ReAct-агента с инструментами из MCP и max_iters=5
  • Запусти локальный stdio MCP-сервер и передай его инструменты в DSPy

Как установить dspy-mcp-tool-integration

1Через Skills CLI (Vercel)

npx skills add OmidZamani/dspy-skills --skill dspy-mcp-tool-integration -a claude-code

2Вручную: положить файлы

~/.claude/skills/dspy-mcp-tool-integration/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/dspy-mcp-tool-integration/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о dspy-mcp-tool-integration

Как установить dspy-mcp-tool-integration в Claude Code?

Выполните npx skills add OmidZamani/dspy-skills --skill dspy-mcp-tool-integration -a claude-code, после чего файл скилла окажется в ~/.claude/skills/dspy-mcp-tool-integration/SKILL.md.

Что делает dspy-mcp-tool-integration?

Показывает, как связать MCP-сервер с DSPy: открыть ClientSession, получить инструменты и использовать их в async-агенте.

Что нужно для работы скилла?

Пакет dspy[mcp] версии от 3.2.1 до 3.3. Соединением с MCP-сервером DSPy не управляет — ClientSession держите открытой, пока живы инструменты.

Исходный текст

SKILL.md · MIT
---
name: dspy-mcp-tool-integration
version: "1.0.0"
dspy-compatibility: "3.2.1"
tags: ["agent", "production"]
requires-extras: ["dspy[mcp]"]
description: Use for MCP tools with DSPy, Model Context Protocol servers, dspy.Tool.from_mcp_tool, and ReAct agents over MCP-compatible tools.
allowed-tools:
  - Read
  - Write
  - Glob
  - Grep
---

# DSPy MCP Tool Integration

## Goal

Connect an MCP server with the MCP Python client, convert its tools to `dspy.Tool`, and use them in an async DSPy agent.

## Install

```bash
pip install -U "dspy[mcp]>=3.2.1,<3.3"
```

DSPy converts tools but does not manage MCP connections. Keep the `ClientSession` alive for as long as the DSPy tools are in use.

## Streamable HTTP Server

```python
import asyncio
import dspy
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    async with streamablehttp_client("http://localhost:8000/mcp") as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            response = await session.list_tools()
            tools = [dspy.Tool.from_mcp_tool(session, tool) for tool in response.tools]

            agent = dspy.ReAct("task -> result", tools=tools, max_iters=5)
            output = await agent.acall(task="Check the weather in Tokyo")
            print(output.result)

asyncio.run(main())
```

## Local Stdio Server

```python
import asyncio
import dspy
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    params = StdioServerParameters(
        command="python3",
        args=["path/to/server.py"],
        env=None,
    )

    async with stdio_client(params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            response = await session.list_tools()
            tools = [dspy.Tool.from_mcp_tool(session, tool) for tool in response.tools]
            agent = dspy.ReAct("question -> answer", tools=tools, max_iters=5)
            print((await agent.acall(question="What is 25 + 17?")).answer)

asyncio.run(main())
```

## Best Practices

1. Use `acall()` because MCP tools are asynchronous.
2. Initialize the session before listing tools.
3. Keep tool descriptions precise at the MCP server boundary.
4. Apply authentication and authorization before exposing sensitive tools.
5. Set a modest `max_iters` and trace tool use in production.

## Related Skills

- Build agents: [dspy-react-agent-builder](../dspy-react-agent-builder/SKILL.md)
- Configure native function calling: [dspy-adapters-multimodal](../dspy-adapters-multimodal/SKILL.md)
- Add async runtime patterns: [dspy-production-deployment](../dspy-production-deployment/SKILL.md)

## Official Documentation

- **DSPy MCP guide**: https://dspy.ai/learn/programming/mcp/
- **DSPy MCP tutorial**: https://dspy.ai/tutorials/mcp/
- **MCP Python SDK**: https://github.com/modelcontextprotocol/python-sdk

© OmidZamani · MIT · OmidZamani/dspy-skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Из того же набора7

dspy-signature-designer Помогает описать входы и выходы модуля DSPy через типизированные сигнатуры. Пригодится, когда ответ модели нужно загнать в строгую схему. CX Codex +1 ★ 124звёзд репо dspy-rag-pipeline Строит пайплайны retrieval-augmented generation с ColBERTv2, которые можно систематически улучшать. Пригодится, если вопросы требуют поиска по собственному корпусу документов и факт-чекирования ответов. CX Codex +1 ★ 124звёзд репо dspy-optimizer-selection Помогает выбрать оптимизатор DSPy под данные и бюджет: от LabeledFewShot до GEPA и BetterTogether. Пригодится, когда неясно, с чего начать компиляцию программы. CX Codex +1 ★ 124звёзд репо dspy-finetune-bootstrap Дистиллирует работающую DSPy-программу в веса меньшей модели через BootstrapFinetune, чтобы снизить стоимость инференса и ускорить ответы. CX Codex +1 ★ 124звёзд репо dspy-debugging-observability Скилл для отладки и мониторинга программ на DSPy: история вызовов, трассировка через MLflow, свои колбэки для учёта цены и ошибок. CX Codex +1 ★ 124звёзд репо dspy-better-together Скилл помогает собрать цепочку из промпт- и весовых оптимизаторов DSPy, сравнить промежуточные программы и вернуть лучшую. CX Codex +1 ★ 124звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой