brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
mcp-server-integrationConnect mcp-agent applications to MCP servers and expose MCPApp workflows as FastMCP servers.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when an agent needs to connect an mcp-agent app to upstream MCP servers or expose an MCPApp itself as an MCP server. It covers transport configuration, server registry behavior, connection lifecycle, MCP primitives, OAuth/authentication, roots, sampling, elicitation, and safe client-install preparation.
../core-sdk/SKILL.md, then return here for server wiring.mcp.servers, attach agents with server_names, or use gen_client/MCPAggregator directly.MCPApp, then call create_mcp_server_for_app(app, **kwargs).../cli-cloud-operations/SKILL.md for CLI install/deploy commands.references/configuration.md for MCPServerSettings, transports, roots, registry, and client install dry-runs.references/server-and-client-workflows.md for create_mcp_server_for_app, workflow tools, decorators, primitives, aggregators, sampling, and elicitation.references/oauth-and-auth.md for downstream OAuth servers, token storage, pre-authorization, and OAuth-protected app servers.references/troubleshooting.md for common failure modes and fixes.scripts/validate_server_config.py --helpscripts/validate_server_config.py path/to/mcp_agent.config.yaml --check-executablesscripts/minimal_app_server.py --helpscripts/minimal_app_server.py --mode dry-run --jsonmcp.servers.<server_name> and make sure the agent/workflow uses the same exact server_name.transport: stdio with command and args; use sse, streamable_http, or websocket with url.headers or secrets-backed placeholders; use auth.oauth only for delegated OAuth flows.roots as file:// URIs when a server needs declared filesystem access, and include server_uri_alias only when the server expects a different mounted URI.allowed_tools to restrict high-risk or collision-prone tool surfaces before exposing them to an LLM.gen_client(server_name, app.context.server_registry, context=app.context) for a direct client session and MCPAggregator([...]) when an agent needs a combined tools/resources/prompts surface.@app.tool for synchronous results and @app.async_tool when callers should receive workflow_id/run_id and poll later.@app.workflow and @app.workflow_run when the workflow needs explicit workflow semantics or signals.create_mcp_server_for_app(agent_app, **fastmcp_kwargs) only after async with app.run() as agent_app.workflows-list, workflows-runs-list, workflows-run, workflows-get_status, workflows-resume, workflows-cancel, and workflows-store-credentials.workflows-<WorkflowName>-run; decorator tools expose their declared names instead.scripts/minimal_app_server.py --mode dry-run to inspect the expected surface first.agent.call_tool(...), session.call_tool(...), or let an attached LLM invoke allowed tools.list_resources() and read_resource(uri).list_prompts() and get_prompt(...); use agent prompt helpers when combining prompts with resource content.roots on the server entry; validate every URI starts with file://.MCPApp human-input callback when nested servers may request LLM sampling approval.MCPApp elicitation callback when servers may call elicitation/create; schema fields must stay primitive (str, int, float, bool).../core-sdk/SKILL.md for basic MCPApp, Agent, LLM, and workflow construction before server integration.../durable-execution/SKILL.md for Temporal worker operations and durable workflow runtime management.../cli-cloud-operations/SKILL.md for CLI command syntax, cloud deployment, and hosted app lifecycle operations.