@belal-elsabbagh-apex/copilot-mcp
Provides tools for managing and analyzing orders in UiPath Orchestrator, including cloning orders between environments, finding clone candidates, deleting pre-prod orders, building queue items, and tracing order executions to jobs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@belal-elsabbagh-apex/copilot-mcpClone the last PROD order to pre-prod"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@belal-elsabbagh-apex/copilot-mcp
MCP server exposing EHR Copilot operations over stdio. Built with Bun
(bun build bundles src/ → a node-runnable dist/server.js), so it runs under either
bunx or npx. Published on GitHub Packages.
Tools
Tool | What it does |
| Mirror PROD order(s) into PRE-PROD as fresh orders (clone-only by default; |
| List recent PROD orders that will actually clone to forReview. |
| Delete order(s) from PRE-PROD (never touches prod). |
| Build a UiPath AddQueueItem request (payload + curl) from an order. BUILD ONLY — |
| Trace an order to its UiPath Orchestrator job(s) and diagnose the run. READ-ONLY. |
| Read a faulted UiPath job (by Key) + its robot logs and BUILD a ready-to-post GitHub issue payload ( |
| Diff an account's |
| Fetch an account's settings sections from ONE env ( |
| List the settings sections |
| Compute — WITHOUT writing — the additive actions that would copy prod-only settings into pre-prod. Each action carries a stable id ( |
| Execute planned sync actions against PRE-PROD — additive only (never overwrites or deletes existing pre-prod settings). Never accepts request bodies: it re-plans server-side (same scoping args as |
| Fetch a single order's normalized detail (status, insurance, ICD/CPT, facility, note presence) by uid in a chosen env, plus |
| Probe the server's external connections (Copilot BE prod + pre-prod login, UiPath Orchestrator per env) and report what's reachable. READ-ONLY. |
Related MCP server: gemini-cli-bridge
Prompts
User-invokable workflow prompts chain the tools above for common ops tasks:
diagnose-order, reconcile-settings, inspect-settings, clone-and-verify-order,
triage-stuck-orders, and report-faulted-uipath-jobs.
reconcile-settings walks the full settings workflow: list_setting_sections →
diff_settings → plan_settings_sync → review the planned action ids with the user →
apply_settings_sync with exactly the approved ids. inspect-settings reads one env's
settings via get_settings and summarizes them.
report-faulted-uipath-jobs finds faulted UiPath jobs (prod by default) and files each as a
GitHub issue on Apex-Medical-AI-Inc/RPAPlaywright — creating one issue per distinct fault
and commenting on the existing issue when the same fault recurs. This server holds no
GitHub credentials: the prompt drives a GitHub MCP server connected in the host to do
the actual search/create/comment, so that server must be connected with write access to the
repo.
Configuration
The server reads one validated config holding both the Copilot BE creds and the UiPath args. Two ways to provide it:
Single file (preferred): set
COPILOT_MCP_CONFIGto a JSON file shaped likeconfig.example.json.Split legacy files: set
COPILOT_MCP_LOCAL_DIRto a directory containingorder-copy-credentials.json+uipath-config.json(+ optionaloverrides.json).
The uipath.queueUrl / addQueueItemPath / serverUrlByEnv fields are only
required by build_queue_item. overrides (per-prodUid clone remaps) is optional.
When a tool fails for a reason that looks like a bug in this server (an unexpected
exception — not a bad profile, missing/invalid config, not-found, auth, or any HTTP error
the upstream system returned), the error response includes a reportIssue block with a
prefilled GitHub new-issue URL. This is on by default; the optional feedback block turns
it off or repoints it:
"feedback": { "enabled": false, "repositoryUrl": "https://github.com/your-org/your-fork" }Other env vars: COPILOT_MCP_DEBUG_DIR (where clone_order dumps the extracted prod
order JSON; defaults to the OS temp dir).
Local development
bun install # also installs the lefthook pre-commit hook (via `prepare`)
bun run typecheck
bun run lint # biome check
bun test # bun's built-in test runner (src/*.test.ts)
bun run build # bundle src -> dist/server.js (node-runnable, what npx/bunx execute)
bun run start # run from source via bun (no build needed)
bun run dev # watch modeExercising the tools
bun run inspect launches the MCP Inspector
against the server from source — a UI to list and call the tools without a host. Point it
at a config first (e.g. COPILOT_MCP_CONFIG=… bun run inspect).
Logging is silent by default so it never corrupts the stdio JSON-RPC stream. Set
LOG_LEVEL=debug (or COPILOT_MCP_DEBUG=1) to route progress logs to stderr.
A pre-commit hook (lefthook) runs biome check + typecheck on commit; CI
(.github/workflows/ci.yml) runs typecheck/lint/build/test on every PR and push to main.
Installing — run directly from the release asset
Every release attaches a self-contained tarball as a GitHub Release asset, and the repo is
public, so npx/bunx can run it straight from the download URL — no registry, no
.npmrc, no auth token. The releases/latest/download/copilot-mcp.tgz URL always points
at the newest release; swap in a download/vX.Y.Z/… URL to pin a version.
Wire into .mcp.json
{
"mcpServers": {
"copilot": {
"command": "npx",
"args": [
"-y",
"https://github.com/belal-elsabbagh-apex/copilot-mcp/releases/latest/download/copilot-mcp.tgz"
],
"env": {
"COPILOT_MCP_CONFIG": "/abs/path/to/config.local.json"
}
}
}
}npx and bunx are interchangeable here (the published bin, dist/server.js, is a plain
node ESM entry). To pin a specific version, use the version-stamped asset instead of
latest, e.g. .../releases/download/v1.14.0/belal-elsabbagh-apex-copilot-mcp-1.14.0.tgz.
Use COPILOT_MCP_LOCAL_DIR instead of COPILOT_MCP_CONFIG for the split legacy files.
The package is also published to this repo's GitHub Packages registry (see below), but that
path needs a read:packages token; the release-asset URL above is the zero-auth default.
Publishing
Publishing is tag-driven. Bump version in package.json, commit, then push a matching
vX.Y.Z tag:
git tag v1.2.0
git push origin v1.2.0That one tag push fans out to two workflows (both keyed off the tag, because a
GITHUB_TOKEN-created release does not trigger other workflows):
Release on tag (
release.yml) — builds the bundle,npm packs it, and creates a GitHub Release with auto-generated notes. It attaches two tarball assets: the version-stampedbelal-elsabbagh-apex-copilot-mcp-X.Y.Z.tgz(for pinning) and a stable-namedcopilot-mcp.tgzthat backs thereleases/latest/download/copilot-mcp.tgzURL used above.Publish (
publish.yml) — typechecks, builds, and runsbun publishto GitHub Packages using the repo'sGITHUB_TOKEN(packages: write); the package inherits the repository's public visibility. Also runnable manually via workflow_dispatch.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/belal-elsabbagh-apex/copilot-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server