An MCP server for OpenROAD
Summary
This PR introduces a Model Context Protocol (MCP) server integration for OpenROAD. This allows OpenROAD functionality to be exposed to and controlled by MCP-compliant clients (such as LLM agents). It establishes the basic server infrastructure, exports core OpenROAD commands, and adds utilities for output capturing and database management.
Key Changes
- Infrastructure Setup:
- Added fastmcp dependency.
- Created the basic MCP server implementation in openroad/mcp.
- Functionality:
- Exported basic OpenROAD commands to the MCP interface.
- Added capability to capture stdout into strings for easier processing.
- Implemented a command to reset the OpenROAD database.
- Clarified the execution environment context for the agent.
- Documentation:
- Added a README for the MCP server component to explain setup and usage.
Commits
- Add readme of the mcp server
- Making more explicit to the agent where OpenROAD is running
- Allowing capturing stdout into strings and reseting the OpenROAD's database
- Basic export of OpenROAD comamnds to MCP
- mcp: Add fastmcp server infrastructure
Demo
https://gist.github.com/fgaray/5e944d829201a41fc0610073d822407f
Herre is a demo of gemini-cli controlling OpenROAD and permforming a timing analysis of the design. It suggest actions to take, explores the design and can interpret the results.
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
clang-tidy review says "All clean, LGTM! :+1:"
As https://github.com/luarss/openroad-mcp/ already exists, I will revert this PR. Thanks everyone!