Cookbook

Build a daily slate briefing agent with the Claude Agent SDK

A short Python agent that connects the Claude Agent SDK to the DeepChamp MCP server and writes a short pre-game briefing from the free slate and matchup tools.

By DeepChamp research team · Updated

Short answer

To build a sports research agent with the Claude Agent SDK, pass the DeepChamp MCP URL in the mcp_servers option, allow the get_daily_slate and get_matchup_context tools, and give the agent a system prompt that forbids odds, picks and result claims. The free tools need no API key.

Install and run

Terminal
pip install claude-agent-sdk
python claude_agent_sdk_slate_briefing.py nba

The code

claude_agent_sdk_slate_briefing.py
"""Daily slate briefing: Claude Agent SDK plus the DeepChamp MCP server. The free tools need no key."""
import asyncio
import sys

from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ResultMessage, TextBlock, query

MCP_URL = "https://deepchampai.com/mcp"

OPTIONS = ClaudeAgentOptions(
    mcp_servers={"deepchamp": {"type": "http", "url": MCP_URL}},
    allowed_tools=["mcp__deepchamp__get_daily_slate", "mcp__deepchamp__get_matchup_context"],
    system_prompt=(
        "You write short pre-game research briefings from DeepChamp tool results. Use only what the tools return. Say when the data was current (meta.as_of). Never state odds, picks or outcomes, and never claim a result. End with: Research only, not betting advice. 21+. Help: 1-800-MY-RESET."
    ),
    max_turns=6,
)


async def main(sport: str = "nba") -> None:
    prompt = f"Brief me on today's {sport} slate: which games have rest or schedule angles worth checking before I look at anything else?"
    async for message in query(prompt=prompt, options=OPTIONS):
        if isinstance(message, AssistantMessage):
            for block in message.content:
                if isinstance(block, TextBlock):
                    print(block.text)
        elif isinstance(message, ResultMessage):
            print(f"\n[{message.num_turns} turns, {message.duration_ms} ms]")


if __name__ == "__main__":
    asyncio.run(main(sys.argv[1] if len(sys.argv) > 1 else "nba"))

What to know before you extend it

  • The free tools return the daily slate and matchup context only: no odds, picks or results, and no key is needed. Paid tools appear in the tool list only when their product line is live.
  • The system prompt tells the model to cite the as-of time and to end with the safety line. Keep that: it is the difference between a briefing and a tip.
  • Relay the compliance block from every response to your own users. It carries the 21+ notice and the problem-gambling helpline.
  • Log every call and its as-of time. If you later add signals, log them with the entry price from your own feed and measure them against the closing line.
  • The allowed_tools names follow the SDK’s mcp__server__tool pattern, so the server key in mcp_servers must match the middle part.

What was checked, and when: on October 31, 2026, against production, the LangChain tool’s REST call returned the free envelope, and the MCP clients of the OpenAI Agents SDK (openai-agents 0.24.0) and the Vercel AI SDK (ai 7.0.105 with @ai-sdk/mcp 2.0.22) connected, listed the four free tools and called get_daily_slate. The Claude Agent SDK file was imported against claude-agent-sdk 0.2.175 and the LangChain file against langchain-core 1.7.3 and langchain-anthropic 1.7.7. The model loops themselves were not run because they need your model key; if a signature has moved in a newer SDK version, the SDK’s own documentation wins.

Common questions

How do I build a sports research agent with the Claude Agent SDK?

Add the DeepChamp MCP server to ClaudeAgentOptions.mcp_servers as an http server, list its tools in allowed_tools using the mcp__deepchamp__ prefix, give the agent a system prompt that limits it to tool results, and iterate over query() to print the assistant text.

This page is published by DeepChamp AI, so read it as one vendor’s view. Examples use hypothetical numbers and are not live markets, picks or claims about performance.

21+ for U.S. sports betting. Follow the laws and age requirements where you are. DeepChamp AI provides independent sports betting research and analysis. It does not accept or place wagers, hold customer funds for betting, or operate a sportsbook. No wins or profits are guaranteed. If you or someone you know has a gambling problem, call or text 1-800-MY-RESET or visit the National Council on Problem Gambling.