ICICLE AI Component MCP lets developers use AI-powered IDEs to explore ICICLE components and then implement, experiment, and iterate directly from chat inside the IDE. It exposes tools for listing, searching, and retrieving component metadata over MCP.
Tags: Software
National Science Foundation (NSF) funded AI institute for Intelligent Cyberinfrastructure with Computational Learning in the Environment (ICICLE) (OAC 2112606)
Report issues at https://github.com/ICICLE-ai/catalog_mcp/issues and include your IDE, Python version, and the full error message or stack trace.
Prerequisites:
- Python 3.10+
- Internet access to fetch the catalog YAML
Steps:
- Create and activate a virtual environment.
python3 -m venv .venv
source .venv/bin/activate- Install dependencies.
pip install -r requirements.txt- Run the MCP server.
python server.py- Connect your MCP client to the stdio server (Cursor MCP settings).
Expected results:
- MCP tools like
list_componentsandsearch_componentsreturn catalog data.
Prerequisites:
- The server is installed and runnable with
python server.py.
Steps (Cursor):
- Create a local MCP config file at
.cursor/mcp.json.
{
"mcpServers": {
"icicle-catalog": {
"command": "./.venv/bin/python",
"args": ["./server.py"]
}
}
}- In Cursor, open MCP settings and enable the
icicle-catalogserver. - In chat, ask a question like: "List components in release 2025-07."
Steps (Claude Desktop):
- Create a local MCP config file at
.claude/mcp.json.
{
"mcpServers": {
"icicle-catalog": {
"command": "./.venv/bin/python",
"args": ["./server.py"]
}
}
}- Enable the server in Claude Desktop MCP settings.
- Ask: "Search components for Foundation AI."
Expected results:
- The IDE can call tools like
list_componentsandsearch_componentsdirectly from chat.
Example chat request and response:
User: Show me ICICLE components related to Foundation AI.
Assistant: I found 7 components. Here are the top 3: [component list...]
Problem:
- Find components matching a query string.
Steps:
- Ask the IDE chat to search the catalog.
Example:
User: Find ICICLE components related to Foundation AI.
Assistant: I found 7 components. Here are the top 3: [component list...]
JSON tool call (advanced):
{"tool": "search_components", "args": {"query": "Foundation AI"}}Tips:
- Use broader terms to increase recall.
Troubleshooting:
- If results are empty, verify network access and catalog URL.
Problem:
- List components for a target release.
Steps:
- Ask the IDE chat to list components for a release.
Example:
User: List all ICICLE components in release 2025-07.
Assistant: I found 42 components in 2025-07. Here are the first 10: [component list...]
JSON tool call (advanced):
{"tool": "list_components", "args": {"target_release": "2025-07"}}Tips:
- Combine
primary_thrustandpublic_accessfor narrower results.
Troubleshooting:
- If the request times out, retry or increase
CATALOG_TIMEOUT.
Core concepts:
- The server fetches a YAML catalog over HTTPS and exposes MCP tools and resources.
- Tools return compact summaries, while resources expose full component records.
Architecture:
server.pydefines the FastMCP server and tool handlers.- An HTTP session handles retries and timeouts for the catalog fetch.
- Transport is stdio; messages are JSON-RPC 2.0 between the client and server.
Design decisions:
- stdio transport keeps integration simple for IDE-based MCP clients.
- Compact list/search responses reduce payload size and latency.
Conceptual flow:
[MCP Client] <-> stdio/JSON-RPC 2.0 <-> [FastMCP Server] -> HTTPS -> [Catalog YAML]