Standalone MCP server for ProBro/OpenEdge database access.
It exposes ProBro-style database operations as MCP tools so other extensions, agents, or clients can use them.
- README.md: primary setup and day-to-day usage.
- HTTP-WRAPPER.md: HTTP endpoint reference.
- COPILOT-CHAT-INTEGRATION.md: advanced Copilot Chat + HTTP wrapper examples and troubleshooting.
- .github/copilot-bootstrap/global-rules.md: reusable AI agent rules for any DB.
- .github/copilot-bootstrap/profiles/.md: DB-specific AI guidance.
- .github/copilot-instructions.md: generated active instruction file consumed by Copilot in this workspace (do not edit directly).
- Reuses the ProBro OpenEdge command protocol (base64 JSON over TCP)
- Supports both local and remote runtime modes
- Exposes schema, query, and CRUD operations
- Includes smoke and integration tests
probro_set_connectionprobro_get_connection_statusprobro_get_versionprobro_list_tablesprobro_get_table_detailsprobro_query_tableprobro_mutate_table
- Node.js 18+
- OpenEdge runtime available when using local mode
npm installnpm startFor easier testing or integration with Copilot Chat:
npm run start:httpServer runs on http://localhost:3000 (configurable via PROBRO_HTTP_PORT).
See HTTP-WRAPPER.md for HTTP endpoint documentation.
node example-client.mjsDemonstrates all HTTP API endpoints with a real database connection.
{
"mcpServers": {
"probro": {
"command": "node",
"args": ["c:/path/to/ProBro/mcp-server/src/index.js"]
}
}
}This repository includes workspace MCP configuration in .vscode/mcp.json.
When VS Code starts MCP for this workspace, it runs node src/index.js and auto-connects from ProBro state first.
For this repository, saved ProBro state is the primary auto-connect source. Workspace settings are supported as a fallback, and PROBRO_* env vars are still supported as optional overrides.
The server supports both the temporary probro.* keys used in this repository and the real ProBro extension-style pro-bro.* keys.
Supported setting keys (fallbacks):
probro.mcp.autoConnect,probro.autoConnectprobro.mcp.mode,probro.connection.mode,probro.modeprobro.mcp.database,probro.connection.database,probro.databaseprobro.mcp.agentHost,probro.connection.agentHost,probro.agentHostprobro.mcp.agentPort,probro.connection.agentPort,probro.agentPortprobro.mcp.dlc,probro.connection.dlc,probro.dlc
This makes CRUD flows seamless when ProBro extension state is already configured in VS Code.
Saved ProBro connection definitions from VS Code state (pro-bro.dbconfig) are exposed through probro_get_saved_connections for inspection, but they are not used as an automatic connection fallback.
Starts OpenEdge runtime from this repository under resources/oe.
Required tool args for probro_set_connection:
mode:localdlc: OpenEdge DLC pathdatabase: database name or path
Optional:
projectRoot(defaults to repo root)agentPort(defaults to23456)dbHost,dbPort,user,password,paramsstartupTimeoutMs,socketTimeoutMstempFilesPath,logEntryTypes
Important:
- If OpenEdge cannot resolve a short DB name in local mode, set
databaseto an absolute.dbpath.
Connects to an already-running OpenEdge agent.
Required tool args for probro_set_connection:
mode:remoteagentHostagentPortdatabase
Optional:
dbHost,dbPort,user,password,paramsstartupTimeoutMs,socketTimeoutMs
Local:
{
"name": "probro_set_connection",
"arguments": {
"mode": "local",
"dlc": "C:\\Progress\\OpenEdge",
"database": "C:\\data\\sports2020.db",
"agentPort": 23456
}
}Remote:
{
"name": "probro_set_connection",
"arguments": {
"mode": "remote",
"agentHost": "127.0.0.1",
"agentPort": 23456,
"database": "sports2020"
}
}Checks that the MCP server starts and all tools are registered.
npm run test:smokePerforms a real connection and validates table listing.
npm run test:integrationEnvironment variables used by integration test:
PROBRO_MCP_MODE:remote(default) orlocalPROBRO_DB_DATABASE: required
Remote mode:
PROBRO_AGENT_HOST: requiredPROBRO_AGENT_PORT: optional (default23456)
Local mode:
PROBRO_DLC: requiredPROBRO_AGENT_PORT: optional (default23456)PROBRO_PROJECT_ROOT: optional
Optional DB parameters:
PROBRO_DB_USERPROBRO_DB_PASSWORDPROBRO_DB_HOSTPROBRO_DB_PORTPROBRO_DB_PARAMS
PowerShell example (local mode):
$env:PROBRO_MCP_MODE="local"
$env:PROBRO_DLC="C:\Progress\OpenEdge"
$env:PROBRO_DB_DATABASE="C:\data\sports2020.db"
$env:PROBRO_AGENT_PORT="23456"
npm run test:integrationYou can expose the ProBro database to GitHub Copilot Chat via the HTTP wrapper:
- Start the HTTP wrapper:
npm run start:http - Build agent bootstrap instructions:
npm run copilot:bootstrap - Optional: choose a DB profile (PowerShell:
$env:COPILOT_DB_PROFILE="sports2020"; npm run copilot:bootstrap, bash:COPILOT_DB_PROFILE=sports2020 npm run copilot:bootstrap) - Keep global rules in
.github/copilot-bootstrap/global-rules.md - Keep DB-specific rules in
.github/copilot-bootstrap/profiles/<profile>.md - Start asking Copilot Chat questions about your database
See COPILOT-CHAT-INTEGRATION.md for advanced HTTP wrapper examples and troubleshooting.
- Local runtime bootstrap is currently Windows-focused.
- On Linux/macOS, use remote mode unless you add platform-specific startup logic.