MCP Problems#

MCP problems wrap upstream MCP servers as first-class packaged problems. This family keeps the standard design-brief resource while exposing upstream tool interfaces for agent-style workflows.

See MCP Problem Catalog for the generated per-problem catalog pages.

The current implementation supports stdio-ingested upstream servers and proxies their tools through to_mcp_server() while preserving upstream session state within one event loop.

For packaged stdio manifests, [parameters].command may use the __python_executable__ marker. At runtime, MCPProblem resolves this marker to the current Python interpreter path before launching the upstream server.

The catalog currently includes mcp_build123d_parametric_mounting_bracket for CAD-oriented agent workflows where the agent writes and evaluates Build123d scripts through a package-owned backend.

Packaged Problem Server#

Any packaged problem that implements to_mcp_server() can be served directly from the package CLI. This avoids writing a temporary server script in a notebook before connecting another agent runtime.

python -m design_research_problems.mcp pill_capsule_min_area --no-citation

Use the same module path from a stdio-capable MCP client. For example, a notebook that uses design-research-agents can point its toolbox at the packaged problem server:

import sys

import design_research_agents as drag

toolbox = drag.Toolbox(
    enable_core_tools=False,
    mcp_servers=(
        drag.MCPServerConfig(
            id="drp_problem",
            command=(
                sys.executable,
                "-m",
                "design_research_problems.mcp",
                "pill_capsule_min_area",
                "--no-citation",
            ),
        ),
    ),
)

Install the MCP extra first when the optional dependency is not already present:

pip install "design-research-problems[mcp]"