OpenBridge is a Python package that provides a bridge API for PAD (Paper-based Analytical Device) storage and access. It serves as an interface between the PAD system and client applications, providing tools for data retrieval, analysis, and storage.
Figure 1: System architecture of OpenBridge. A large language model (Claude Desktop) uses MCP to communicate with the OpenBridge server, which dynamically discovers and exposes API endpoints from OAS-compliant APIs as tools. JSON-LD responses provide semantic richness, improving interpretability for both agents and human users.
- API Integration: Seamless integration with the PAD API
- Analysis Tools: Tools for analyzing PAD card images and data
- File Handling: Utilities for managing PAD-related files
- Prompt Templates: Predefined prompts for AI assistants working with PAD data
# Install from source
git clone https://github.com/PaperAnalyticalDeviceND/OpenBridge.git
cd OpenBridge
uv syncuv run tests/test_server.pyTo use OpenBridge with Claude Desktop, you need to configure the MCP server in Claude Desktop's configuration file:
-
Locate the Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Add or modify the
mcpServerssection to include OpenBridge:
{
"mcpServers": {
"openBridge": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/OpenBridge",
"run",
"-m",
"OpenBridge.server"
],
"env": {
"SERVER_BASE_URL": "https://pad.crc.nd.edu",
"OPENAPI_SPEC_URL": "https://pad.crc.nd.edu/api-ld/v3/openapi.json",
"FILESYSTEM_STORAGE": "/path/to/your/storage"
}
}
}
}-
Replace the paths with your actual OpenBridge clone path and desired storage location.
-
Restart Claude Desktop to apply the changes.
-
In Claude Desktop, you can now select "openBridge" from the server dropdown to connect to your OpenBridge server.
Note: You do not need run the server in the terminal to use it with Claude Desktop.
# Run with stdio transport (default)
uv run -m OpenBridge
# Or run with SSE transport
uv run -m OpenBridge sse# Debug mode
uv run fastmcp dev OpenBridge_server.pyIf you use OpenBridge in your research, please cite our paper:
@inproceedings{10.1145/3708035.3736045,
author = {Saboia, Priscila and Sweet, James and Sweet, Christopher},
title = {OpenBridge: Bridging Domain Scientists and APIs through AI-Powered Interfaces},
year = {2025},
booktitle = {Practice and Experience in Advanced Research Computing 2025: The Power of Collaboration},
series = {PEARC '25},
doi = {10.1145/3708035.3736045},
url = {https://doi.org/10.1145/3708035.3736045},
publisher = {Association for Computing Machinery},
keywords = {AI Agents, OpenAPI, Model Context Protocol, Research Data Infrastructure}
}Saboia, P., Sweet, J., & Sweet, C. (2025). OpenBridge: Bridging Domain Scientists and APIs through AI-Powered Interfaces. In Practice and Experience in Advanced Research Computing 2025: The Power of Collaboration (PEARC '25). Association for Computing Machinery. https://doi.org/10.1145/3708035.3736045
Conference Poster: View PEARC 2025 Poster
This project is licensed under the MIT License - see the LICENSE file for details.