Sequential Thinking
Combine the sequential-thinking MCP server with YFinanceTools to reason step by step over stock data.
"""
This example demonstrates how to use multiple MCP servers in a single agent.
Prerequisites:
- Google Maps:
- Set the environment variable `GOOGLE_MAPS_API_KEY` with your Google Maps API key.
You can obtain the API key from the Google Cloud Console:
https://console.cloud.google.com/projectselector2/google/maps-apis/credentials
- You also need to activate the Address Validation API for your .
https://console.developers.google.com/apis/api/addressvalidation.googleapis.com
"""
import asyncio
from textwrap import dedent
from agno.agent import Agent
from agno.tools.mcp import MCPTools
from agno.tools.yfinance import YFinanceTools
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
async def run_agent(message: str) -> None:
"""Run the GitHub agent with the given message."""
async with (
MCPTools(
command="npx -y @modelcontextprotocol/server-sequential-thinking"
) as sequential_thinking_mcp_tools,
):
agent = Agent(
tools=[
sequential_thinking_mcp_tools,
YFinanceTools(),
],
instructions=dedent("""\
## Using the think tool
Before taking any action or responding to the user after receiving tool results, use the think tool as a scratchpad to:
- List the specific rules that apply to the current request
- Check if all required information is collected
- Verify that the planned action complies with all policies
- Iterate over tool results for correctness
## Rules
- Its expected that you will use the think tool generously to jot down thoughts and ideas.
- Use tables where possible\
"""),
markdown=True,
)
await agent.aprint_response(message, stream=True)
# Example usage
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
# Pull request example
asyncio.run(run_agent("Write a report comparing NVDA to TSLA"))Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U "agno[mcp]" openai yfinancePrepare Node.js
The MCP server runs with npx. Install Node.js, then verify the commands:
node --version
npx --versionExport your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"Match the registered tool name
Save the source as sequential_thinking.py. In its instructions string, replace each think tool with sequentialthinking tool, the name registered by the server.
The Google Maps prerequisite in the preserved source docstring does not apply: this example connects Sequential Thinking and YFinanceTools.
Run the example
Run the adapted sequential_thinking.py:
python sequential_thinking.pyFull source: cookbook/91_tools/mcp/sequential_thinking.py