@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
28 tools, grouped below by domain. Args lists only the arguments relevant to auth/scope
(env, profile) — see each tool's own schema for the rest. Every Copilot tool requires an
explicit profile; most also require an explicit env (prod | pre_prod) — neither is ever
defaulted. UiPath-only tools take env but no profile (UiPath auths globally, not per-account).
Copilot orders
All read tools here are READ-ONLY. Writes (delete_preprod_order, create_preprod_order,
submit_preprod_order) only ever target pre-prod; prod is never mutated. There's no single
"clone" tool — the clone-and-verify-order prompt (see Prompts below) orchestrates find_clone_candidates
→ get_order → create_preprod_order (and the settings tools, if a reference doesn't resolve).
Tool | Args | What it does |
|
| Scan recent PROD orders and return only the ones that will actually clone to forReview (have a referredFacility, orderType, and orderNames) — filters out the ones that would get stuck "incomplete". |
|
| Mint a fresh PRE-PROD order from explicit data and drive it to forReview. Never submits (see |
|
| Submit a PRE-PROD order sitting at forReview, advancing it to inProgress. A real, deliberate write — requires explicit user authorization before calling. |
|
| Delete one or more orders from PRE-PROD ( |
|
| Fetch one order's normalized detail (status, insurance, ICD/CPT, facility, POS, note presence) plus |
|
| Scan recent orders in an env and flag ones sitting in a non-terminal status (default |
|
| Fetch an order and BUILD the UiPath AddQueueItem request payload from it — never POSTs. |
|
| Log into the Copilot BE and return the session JWT (the same token UiPath callbacks use as |
UiPath Orchestrator — reads
All READ-ONLY.
Tool | Args | What it does |
|
| Trace a Copilot |
|
| List the most recent Orchestrator jobs in a folder, newest first, no order correlation. |
|
| Fetch one (or up to 25 via |
|
| Fetch a job's robot logs (oldest first, capped 500), optionally batched via |
|
| Browse a portal's UiPath queue for triage — resolve by |
|
| List the queue definitions in a folder — use to discover a |
|
| List the releases ("processes") in a folder — |
|
| List triggers (queue + time) in a folder — verify a queue trigger's |
|
| Fetch one queue item (by Orchestrator URL or |
|
| Read a faulted job (by Key) + its robot logs and BUILD a ready-to-post GitHub issue payload ( |
UiPath Orchestrator — writes (pre-prod only)
env is a schema-enforced literal "pre_prod" on every tool below — "prod" is rejected before
any HTTP call, and every posted payload passes a safety guard.
Tool | Args | What it does |
|
| POST one item to a dev-clone queue. |
|
| Delete one queue item from the dev clone. Fetch-first: refuses unless the item's current status is |
|
| Start job(s) for a release in the dev clone. A job resolves its package version at START (not creation) — re-check |
Settings sync (prod ↔ pre-prod)
diff_settings/get_settings/plan_settings_sync are READ-ONLY; apply_settings_sync is the
only settings tool that writes, and it's additive-only against pre-prod (never overwrites/deletes).
Tool | Args | What it does |
|
| Diff an account's settings between prod and pre-prod (UID/timestamp/dummy-email noise stripped, list items matched by name not UID). Scope with |
|
| Fetch an account's settings sections from ONE env — the single-env counterpart to |
| — | List every section |
|
| Compute — WITHOUT writing — the additive actions that would copy prod-only settings into pre-prod. Covers the specialties domain ( |
|
| Execute a reviewed selection of |
Meta / diagnostics
Tool | Args | What it does |
|
| Probe the server's external connections — Copilot BE login (both envs) + one cheap UiPath Orchestrator call per env/folder — and report what's reachable, plus which UiPath auth mode ( |
| — | Compose a GitHub issue about this MCP server from a bug report or general feedback — no tool failure required. Posts nothing and holds no GitHub credentials; returns |
Related MCP server: GenieOS MCP Server
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.
clone-and-verify-order picks a cloneable prod order (or uses a given uid), reads it via
get_order, and mints an equivalent pre-prod order via create_preprod_order — there's no
dedicated "clone" tool, since whether a clone succeeds is order-specific (it depends on
pre-prod already having the referenced facility/speciality/order type/order names). If minting
fails or the order doesn't reach forReview, the prompt diagnoses via list_setting_sections →
diff_settings → plan_settings_sync, reporting a proposed fix rather than applying one.
Submitting the resulting order is a separate, explicit submit_preprod_order call that only
happens with the user's authorization.
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 likecopilot-mcp.config.example.json. IfCOPILOT_MCP_CONFIGisn't set, the server looks forcopilot-mcp.config.jsonin its working directory (falling back to the olderconfig.local.jsonname if that's what you already have).Split legacy files: set
COPILOT_MCP_LOCAL_DIRto a directory containingorder-copy-credentials.json+uipath-config.json.
The uipath.queueUrl / addQueueItemPath / serverUrlByEnv fields are only
required by build_queue_item. Editing the config file while the server is running
takes effect on the next tool call — no restart needed — and the server sends an MCP
logging notification when it reloads.
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" }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/copilot-mcp.config.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.
Related MCP Servers
- AlicenseCqualityDmaintenanceConnects MCP-enabled editors to GitHub Copilot CLI for non-interactive code analysis, batch processing, and code review.Last updated10355MIT

GenieOS MCP Serverofficial
AlicenseAqualityCmaintenanceStdio bridge for editors to connect to the GenieOS MCP server, enabling AI agents to interact with GenieOS via Streamable HTTP transport.Last updated6417MIT- Alicense-qualityBmaintenanceExposes core recruiting tools such as candidate ranking, profile retrieval, honeypot audits, and job description parsing via stdio protocol.Last updatedMIT
- Alicense-qualityAmaintenanceServes a live code-graph workbench over stdio for MCP clients/agents, enabling Cypher queries and codebase analysis via KGLite tools.Last updatedMIT
Related MCP Connectors
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.
StremAI MCP: shared memory for AI coding agents. Connected agents can recall. OAuth + local stdio.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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