AgentStack
SKILL verified MIT Self-run

Dspy Mcp Tool Integration

skill-omidzamani-dspy-skills-dspy-mcp-tool-integration · by OmidZamani

Use for MCP tools with DSPy, Model Context Protocol servers, dspy.Tool.from_mcp_tool, and ReAct agents over MCP-compatible tools.

No reviews yet
0 installs
10 views
0.0% view→install

Install

$ agentstack add skill-omidzamani-dspy-skills-dspy-mcp-tool-integration

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Dspy Mcp Tool Integration? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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

pip install -U "dspy[mcp]>=3.2.1, 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

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

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.