使用说明
Mock MCP Server for Port Demos
A mock MCP server that simulates Datadog, GitHub, NewRelic, AWS, Notion, FluxCD, ServiceNow, Confluence, and Backstage tools for Port's Agentic Engineering Platform demos.
Endpoints
| Vendor | URL Path | Description |
|---|---|---|
| Datadog | /datadog/mcp |
Logs, metrics, APM, monitors |
| GitHub | /github/mcp |
PRs, commits, code search, workflows |
| NewRelic | /newrelic/mcp |
Entities, NRQL, error groups, alerts |
| AWS | /aws/mcp |
CloudWatch, CloudTrail, EC2, Lambda |
| Notion | /notion/mcp |
Pages, databases, search |
| FluxCD | /fluxcd/mcp |
Flux resources, K8s logs, reconciliation |
| ServiceNow | /servicenow/mcp |
Incidents, changes, CMDB, catalog, approvals |
| Confluence | /confluence/mcp |
Wiki pages, runbooks, spaces, search |
| Backstage | /backstage/mcp |
Catalog entities, relations, overlays, search |
| Figma | /figma/mcp |
Design context, metadata, screenshots, variables, comments |
Datadog Tools
Names mirror the official Datadog MCP server. The first eight tools are older mock tools and keep their original names.
| Tool | Type | Description |
|---|---|---|
search_datadog_logs, get_datadog_metrics, get_datadog_service_dependencies, search_datadog_incidents, get_datadog_monitors, list_datadog_dashboards, list_datadog_traces, list_datadog_hosts |
read | Logs, metrics, dependencies, incidents, monitors, dashboards, traces, hosts |
search_datadog_slos |
read | SLOs with error budget and burn rate |
search_datadog_events |
read | Alerts, deployments, status changes |
create_datadog_monitor |
create | Create a draft monitor |
create_datadog_notebook |
create | Create a notebook |
delete_datadog_notebook |
delete | Soft-delete a notebook (30-day recovery) |
delete_datadog_dashboard |
delete | Permanently delete a dashboard |
GitHub Tools
Names follow the official github-mcp-server.
| Tool | Type | Description |
|---|---|---|
list_pull_requests, get_file_content, list_commits, search_code, search_issues, get_repository, list_branches, get_workflow_runs, list_dependabot_alerts |
read | Existing read tools |
get_pull_request |
read | PR details with reviews, checks, mergeability |
get_job_logs |
read | Workflow job logs, optionally failed jobs only |
create_issue |
create | Create an issue |
create_pull_request |
create | Open a pull request |
merge_pull_request |
modify | Merge, squash, or rebase a PR |
rerun_workflow_run |
action | Re-run a workflow run or its failed jobs |
New Relic Tools
Names mirror the official New Relic MCP server, which is read-only. The three write tools are Port extensions in the same naming style.
| Tool | Type | Description |
|---|---|---|
get_newrelic_entity, execute_nrql_query, list_newrelic_error_groups, list_newrelic_alerts, get_newrelic_dashboard, list_newrelic_services |
read | Existing read tools |
list_alert_policies |
read | Alert policies for an account |
list_change_events |
read | Deployments and changes for an entity |
analyze_deployment_impact |
read | Golden signals before vs after a deploy |
create_change_event |
create (extension) | Record a deployment marker |
create_alert_condition |
create (extension) | Create an NRQL alert condition |
delete_alert_condition |
delete (extension) | Delete an alert condition |
AWS Tools
| Tool | Type | Description |
|---|---|---|
get_cloudwatch_metrics, get_cloudwatch_logs, get_cloudtrail_events, describe_ec2_instances, list_lambda_functions, describe_cloudwatch_alarms |
read | Existing read tools |
describe_rds_instances |
read | RDS instances and status |
get_cost_and_usage |
read | Cost Explorer spend by service/tag |
reboot_ec2_instances |
action | Reboot EC2 instances |
terminate_ec2_instances |
delete | Terminate EC2 instances |
invoke_lambda_function |
action | Invoke a Lambda function |
update_ecs_service |
modify | Change desired count or force a deployment |
FluxCD Tools
The FluxCD mock mirrors the real Flux Operator MCP Server:
| Tool | Description |
|---|---|
get_flux_instance |
Flux installation status, version, components |
get_kubernetes_resources |
HelmRelease, Kustomization, GitRepository status |
get_kubernetes_logs |
Pod container logs with timestamps |
get_kubernetes_metrics |
CPU/Memory usage for pods |
reconcile_flux_helmrelease |
Trigger HelmRelease reconciliation |
reconcile_flux_kustomization |
Trigger Kustomization reconciliation |
reconcile_flux_source |
Trigger source reconciliation |
suspend_flux_reconciliation |
Suspend Flux resource |
resume_flux_reconciliation |
Resume Flux resource |
search_flux_docs |
Search Flux documentation |
Figma Tools
The Figma mock mirrors the real Figma Dev Mode MCP Server (https://mcp.figma.com/mcp). Links are parsed for fileKey/nodeId the same way the real server does (https://www.figma.com/design/:fileKey/:fileName?node-id=:nodeId).
| Tool | Description |
|---|---|
get_metadata |
Sparse XML outline of a selection's layer hierarchy |
get_design_context |
Structured design-to-code context (React + Tailwind) for a node, aka get_code |
get_screenshot |
Visual reference image of a selection |
get_variable_defs |
Design tokens (color, spacing, typography) used in a selection |
get_figma_comments |
Review comments and open questions on a file (Port extension, not part of the real Dev Mode toolset) |
Port workflow pattern
Use Figma as the design context source for engineering plan generation:
- Register Figma MCP at
https://your-app.onrender.com/figma - In a Port AI agent or workflow, call
get_metadatathenget_design_context/get_variable_defson the design'sfigma_linkto pull layout, tokens, and any unresolvedget_figma_commentsinto the engineering plan's technical approach and risks sections
Local Development
# Install dependencies
pip install -r requirements.txt
# Set API key
export ANTHROPIC_API_KEY=your_key_here
# Run server
python -m uvicorn src.main:create_app --factory --host 0.0.0.0 --port 8000
Deploy to Render
- Push this repo to GitHub
- Go to render.com → New → Web Service
- Connect your GitHub repo
- Add environment variable:
ANTHROPIC_API_KEY - Deploy
Your MCP URLs will be:
https://your-app.onrender.com/datadog/mcphttps://your-app.onrender.com/github/mcphttps://your-app.onrender.com/newrelic/mcphttps://your-app.onrender.com/aws/mcphttps://your-app.onrender.com/notion/mcphttps://your-app.onrender.com/fluxcd/mcphttps://your-app.onrender.com/servicenow/mcphttps://your-app.onrender.com/confluence/mcphttps://your-app.onrender.com/backstage/mcphttps://your-app.onrender.com/figma/mcp
Backstage Tools
The Backstage mock mirrors Backstage Portal MCP tools. Catalog lookups return deterministic data aligned with other demo vendors (checkout-service, payment-gateway, etc.).
| Tool | Description |
|---|---|
get_entity |
Get a catalog entity by reference |
get_catalog_entity |
Same as get_entity (Portal MCP naming) |
list_entities |
List entities by kind (Component, API, System, Resource, Group) |
search_entities |
Search catalog by keyword and optional kind filter |
search |
Broad catalog search (Portal MCP) |
get_entity_relations |
Get dependsOn, providesApis, owner, system relations |
get_entity_overlay |
Get overlay metadata (maturity, on-call, compliance) |
query_semantic_search_engine |
Semantic search across catalog and docs (LLM) |
Port workflow pattern
Use Backstage as the catalog source of truth and Port as the workflow engine:
- Register Backstage MCP at
https://your-app.onrender.com/backstage - In a Port AI agent or workflow, call
get_catalog_entityorsearch_entitiesto resolve service metadata, owners, and dependencies - Use Port workflows (
trigger_workflow_run) to orchestrate actions (incident response, scaffolding, approvals) based on Backstage catalog data
This decouples the Port IDP catalog from the agentic engineering platform — Backstage owns entity metadata; Port owns workflow execution.
Confluence Tools
Dummy read-only Confluence mock — same pattern as Notion (no real Atlassian connection, no auth):
| Tool | Description |
|---|---|
search_confluence |
Search pages, runbooks, and wiki content |
get_confluence_page |
Get a page by ID with content preview |
list_confluence_spaces |
List wiki spaces |
get_confluence_page_children |
List child pages under a parent |
Demo content uses Port-style service names (checkout-service, payment-gateway) across spaces ENGINEERING, PLATFORM, and RUNBOOKS.
Register in Port as Custom Server at https://your-app.onrender.com/confluence (no /mcp suffix, no headers or OAuth credentials).
ServiceNow Tools
The ServiceNow mock provides ITSM/ITOM tools based on common community implementations:
| Tool | Description |
|---|---|
search_incidents |
Search incidents with filters (state, priority, assigned_to) |
get_incident |
Get incident details by number (INC0001234) |
create_incident |
Create new incident |
update_incident |
Update incident, add work notes/comments |
resolve_incident |
Resolve incident with resolution code |
search_change_requests |
Search change requests |
get_change_request |
Get change request details (CHG0001234) |
create_change_request |
Create normal/standard/emergency change |
search_cmdb_ci |
Search CMDB configuration items |
get_cmdb_ci |
Get CI details |
get_ci_relationships |
Get CI upstream/downstream dependencies |
search_knowledge_base |
Search KB articles |
get_catalog_items |
List service catalog items |
order_catalog_item |
Submit catalog request |
get_user |
Get user by ID, email, or username |
search_problems |
Search problem records |
get_my_approvals |
Get pending approvals |
approve_request |
Approve a request |
reject_request |
Reject a request |
Connect to Port
- Go to Port → Data Sources → MCP Servers → Custom Server
- Add connector with URL:
https://your-app.onrender.com/fluxcd(vendor path only, no/mcp) - Leave Headers and OAuth credentials empty — these are dummy mocks with no client auth
- Repeat for other vendors (
/confluence,/notion,/backstage,/servicenow, etc.)
