agent protocol mcp server
Agent Protocol MCP Server
Package: @bluefly/agent-protocol v0.1.5
Last Updated: 2026-02-17
Status: Production
Source: GitLab
Table of Contents
- Overview
- Architecture
- Tool Reference (88 Tools)
- SSE Transport
- OpenTelemetry Integration
- Config Resolution System
- Deployment
- Running Locally
- Environment Variables
- MCP Resources
- Related Documentation
Overview
The Agent Protocol MCP Server is the central Model Context Protocol server for the BlueFly.io infrastructure. It is a single server that exposes the entire platform through the MCP standard, making all capabilities available to MCP-compatible clients such as Claude Desktop, Cursor IDE, and custom integrations.
Key Characteristics
- SDK-native: Built on
@modelcontextprotocol/sdkv1.26.0 -- no custom HTTP framework, no Express - Dual transport: stdio for local development (Claude Desktop, CLI) and SSE for remote deployment at
mcp.blueflyagents.comvia Cloudflare tunnel - 88 tools organized across 12 capability groups
- OpenTelemetry instrumentation on every tool call, reporting to GitLab Observability
- OSSA-compliant: Follows Open Standard for Sustainable Agents specification
- Config resolution: Dynamic token substitution from
workspace.jsonwith template-based config generation
What It Connects
| Integration | Description |
|---|---|
| GitLab Ultimate | Issues, MRs, pipelines, security scanning, workspaces, KAS, model registry, value stream analytics |
| Agent Registry | OSSA agent registration, discovery, validation, search |
| Platform Agents | mesh.bluefly.internal agent lifecycle and MCP server registry |
| Compliance/OSSA | Manifest validation, Cedar policy checking, OpenAPI validation, compliance auditing |
| Vector Search/RAG | Qdrant vector database indexing, semantic search, RAG queries, embeddings |
| Kubernetes | Deploy, scale, status, logs, rollback, health for k3s/k8s clusters |
| Drupal LLM | Drupal knowledge base queries, content migration to vector store |
| Workflow Engine | Workflow creation, execution, status tracking, cancellation |
| OSSA Agents | Agent discovery, detail retrieval, execution, sync from NAS/GitLab |
| Knowledge Graph | GitLab entity traversal, semantic search, relationship queries, context building |
| Acquia Source | Content CRUD, Canvas pages, component discovery via JSON:API |
| Config Resolution | Template-based config sync, OTel config, endpoint discovery, health checks |
Architecture
Class Structure
The server is implemented as a single class AgentProtocolMCPServer in src/mcp/server.ts.
src/mcp/
server.ts # AgentProtocolMCPServer class (entry point)
otel.ts # OpenTelemetry instrumentation
services/
index.ts # Service factory exports
agent-registry.service.ts
gitlab.service.ts
compliance.service.ts
vector-search.service.ts
kubernetes.service.ts
drupal-llm.service.ts
workflow.service.ts
ossa-agents.service.ts
agent-sync.service.ts
acquia-source.service.ts
config.service.ts
tools/
knowledge-graph-tools.ts # Tool definitions + handlers
knowledge-graph-handlers.ts # Handler dispatch
SDK Usage
The server uses only official SDK types -- no custom HTTP layer:
import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, Tool, } from '@modelcontextprotocol/sdk/types.js';
Request Flow
MCP Client (Claude Desktop / Cursor / Custom)
|
| JSON-RPC (stdio or SSE)
v
AgentProtocolMCPServer
|
|-- ListToolsRequestSchema --> getAllTools() --> returns 88 Tool definitions
|
|-- CallToolRequestSchema --> recordToolCall(name, args, fn) [OTel traced]
| |
| v
| executeTool(name, args)
| |
| |-- group prefix routing (name.split('.')[0])
| | agent.* --> executeAgentTool() --> AgentRegistryService
| | platform.* --> executePlatformTool() --> BlueFlyAgentPlatformClient
| | gitlab.* --> executeGitLabTool() --> GitLabService
| | compliance.* --> executeComplianceTool() --> ComplianceService
| | vector.* --> executeVectorTool() --> VectorSearchService
| | k8s.* --> executeKuberneTool() --> KubernetesService
| | drupal.* --> executeDrupalTool() --> DrupalLLMService
| | workflow.* --> executeWorkflowTool() --> WorkflowService
| | ossa.* --> executeOSSATool() --> OSSAAgentsService
| | acquia.* --> executeAcquiaSourceTool() --> AcquiaSourceService
| | config.* --> executeConfigTool() --> ConfigService
| | (underscore prefix) --> executeKnowledgeGraphTool()
| |
| v
| ToolExecutionResult { success, data, error?, metadata }
|
|-- ListResourcesRequestSchema --> getAllResources()
|-- ReadResourceRequestSchema --> readResource(uri)
Tool Dispatch
The executeTool() method routes by the prefix before the first dot:
const [group] = name.split('.'); switch (group) { case 'agent': return this.executeAgentTool(name, args); case 'platform': return this.executePlatformTool(name, args); case 'gitlab': return this.executeGitLabTool(name, args); case 'compliance': return this.executeComplianceTool(name, args); case 'vector': return this.executeVectorTool(name, args); case 'k8s': return this.executeKuberneTool(name, args); case 'drupal': return this.executeDrupalTool(name, args); case 'workflow': return this.executeWorkflowTool(name, args); case 'ossa': return this.executeOSSATool(name, args); case 'acquia': return this.executeAcquiaSourceTool(name, args); case 'config': return this.executeConfigTool(name, args); default: // Knowledge graph tools use underscores (query_knowledge_graph_*) if (name.startsWith('query_knowledge_graph_') || ...) return this.executeKnowledgeGraphTool(name, args); throw new Error(`Unknown tool: ${name}`); }
Each group handler uses a dedicated service obtained via factory functions (getGitLabService(), getConfigService(), etc.) from src/mcp/services/index.ts.
Tool Reference (88 Tools)
Agent Registry (6 tools)
| Tool | Description | Required Params |
|---|---|---|
agent.register | Register a new agent with OSSA manifest | manifest |
agent.get_manifest | Retrieve OSSA manifest for a registered agent | agentId |
agent.validate_manifest | Validate OSSA compliance of an agent manifest | manifest |
agent.search | Search registry by name, tags, or capabilities | query |
agent.list | List all registered agents with pagination | -- |
agent.update | Update an existing agent manifest | agentId, updates |
Platform Agents (6 tools)
These tools interact with the platform-agents service at mesh.bluefly.internal.
| Tool | Description | Required Params |
|---|---|---|
platform.register_agent | Register OSSA agent with platform-agents service | gaid, manifest |
platform.discover_agents | Discover registered agents by capability or provider | -- |
platform.resolve_agent | Resolve agent details by GAID | gaid |
platform.register_mcp_server | Register MCP server with Drupal mcp_registry module | name, url, tools |
platform.discover_mcp_servers | Discover registered MCP servers from Drupal | -- |
platform.health_check | Check platform-agents service health | -- |
GitLab Ultimate (23 tools)
Core (7):
| Tool | Description | Required Params |
|---|---|---|
gitlab.create_issue | Create a new GitLab issue | project, title |
gitlab.create_mr | Create a new merge request | project, sourceBranch, title |
gitlab.trigger_pipeline | Trigger a CI/CD pipeline | project, ref |
gitlab.get_pipeline_status | Check pipeline status | project, pipelineId |
gitlab.list_issues | List issues with filters (state, labels) | -- |
gitlab.update_issue | Update an existing issue | project, issueId, updates |
gitlab.merge_mr | Merge an approved MR | project, mrId |
Observability (6):
| Tool | Description | Required Params |
|---|---|---|
gitlab.list_deployments | List deployments with environment/status filters | project |
gitlab.list_environments | List environments (production, staging, etc.) | project |
gitlab.get_error_tracking | Get error tracking configuration and client keys | project |
gitlab.list_audit_events | List audit events (GitLab Ultimate) | project |
gitlab.get_pipeline_metrics | Get pipeline success rate, avg duration, recent pipelines | project |
gitlab.get_value_stream | Get Value Stream Analytics summary (Ultimate) | project |
Workspaces (3):
| Tool | Description | Required Params |
|---|---|---|
gitlab.list_workspaces | List remote development workspaces | -- |
gitlab.create_workspace | Create a workspace from a project | project |
gitlab.stop_workspace | Stop a running workspace | workspaceId |
Security (2):
| Tool | Description | Required Params |
|---|---|---|
gitlab.get_vulnerabilities | Get vulnerability findings (SAST, DAST, container, dependency) | project |
gitlab.get_security_report | Get security report for a pipeline | project, pipelineId, reportType |
Model Registry (2):
| Tool | Description | Required Params |
|---|---|---|
gitlab.list_models | List ML models in GitLab Model Registry | project |
gitlab.get_model_versions | Get model versions | project, modelId |
KAS - Kubernetes Agent Server (2):
| Tool | Description | Required Params |
|---|---|---|
gitlab.list_agents | List GitLab Agents (KAS) for k3s/k8s cluster management | project |
gitlab.get_agent_tokens | Get agent connection tokens for k3s clusters | project, agentId |
Protected Environments (1):
| Tool | Description | Required Params |
|---|---|---|
gitlab.get_protected_environments | Get protected environment configs with approval gates | project |
Compliance/OSSA (5 tools)
| Tool | Description | Required Params |
|---|---|---|
compliance.validate_ossa | Validate OSSA manifest against v0.1.9 specification | manifest |
compliance.generate_manifest | Generate OSSA manifest from template (worker/orchestrator/router) | template, metadata |
compliance.check_policy | Check Cedar policy compliance | policy |
compliance.validate_openapi | Validate OpenAPI 3.1 specification | spec |
compliance.audit_compliance | Run comprehensive compliance audit | target |
Vector Search / RAG (5 tools)
| Tool | Description | Required Params |
|---|---|---|
vector.index | Index documents into Qdrant vector database | collection, documents |
vector.search | Semantic search across indexed documents | collection, query |
vector.query | RAG-powered query with context retrieval | collection, question |
vector.embed | Generate embeddings for text | text |
vector.retrieve | Retrieve specific documents by ID | collection, ids |
Kubernetes (6 tools)
| Tool | Description | Required Params |
|---|---|---|
k8s.deploy | Deploy service to Kubernetes cluster | namespace, manifest |
k8s.scale | Scale deployment replicas | namespace, deployment, replicas |
k8s.status | Get deployment status | namespace, deployment |
k8s.logs | Get pod logs | namespace, pod |
k8s.rollback | Rollback to previous revision | namespace, deployment |
k8s.health | Check cluster health status | -- |
Drupal LLM (5 tools)
| Tool | Description | Required Params |
|---|---|---|
drupal.query | Query Drupal knowledge base | query |
drupal.migrate | Migrate Drupal content to vector store | source, contentTypes |
drupal.validate | Validate Drupal migration configuration | config |
drupal.sync | Sync Drupal content with vector store | source |
drupal.check | Check Drupal-LLM integration status | site |
Workflow (5 tools)
| Tool | Description | Required Params |
|---|---|---|
workflow.create | Create a new workflow definition | name, definition |
workflow.execute | Execute a workflow instance | workflowId |
workflow.status | Get workflow execution status | executionId |
workflow.cancel | Cancel a running workflow execution | executionId |
workflow.list | List all workflows with status filter | -- |
OSSA Agents (4 tools)
| Tool | Description | Required Params |
|---|---|---|
ossa.list_agents | List all OSSA agents from platform-agents registry | -- |
ossa.get_agent | Get detailed information about a specific OSSA agent | agentId |
ossa.execute | Execute an OSSA agent with operation and context | agentId, operation |
ossa.sync_agents | Sync OSSA agents from NAS/GitLab to local machine | -- |
Knowledge Graph (6 tools)
These tools use underscore naming (not dot notation) and query the GitLab Knowledge Graph service.
| Tool | Description | Required Params |
|---|---|---|
query_knowledge_graph_entities | Query entities by type, pagination, and natural language search | -- |
query_knowledge_graph_relationships | Query relationships between entities (HAS_ISSUE, AUTHORED_BY, CLOSES, etc.) | -- |
traverse_knowledge_graph | Traverse graph from an entity following relationships | startEntityId |
get_related_entities_with_context | Get entities related to a specific entity with full context | entityId |
search_knowledge_graph_semantic | AI-powered semantic search across the knowledge graph | query |
build_agent_context_graph | Build comprehensive context graph for agent decision-making | rootEntityId |
Supported entity types: project, issue, merge_request, user, commit, milestone, label
Supported relationship types: HAS_ISSUE, HAS_MERGE_REQUEST, AUTHORED_BY, ASSIGNED_TO, CLOSES, REVIEWED_BY, TAGGED_WITH, HAS_COMMIT, HAS_MILESTONE, HAS_LABEL
Acquia Source (11 tools)
Integrates with Acquia Source (Drupal JSON:API) including Canvas page and component support.
| Tool | Description | Required Params |
|---|---|---|
acquia.list_content | List content, optionally filter by title | -- |
acquia.get_content | Get single content by UUID | type, uuid |
acquia.create_content | Create content on Acquia Source | type, attributes |
acquia.update_content | Update content by UUID | type, uuid, attributes |
acquia.delete_content | Delete content by UUID | type, uuid |
acquia.search_content | Search content with JSON:API filters | -- |
acquia.list_content_types | List all resource types on Source | -- |
acquia.get_content_with_relationships | Get content with included relationships | type, uuid |
acquia.list_canvas_pages | List Canvas pages with component counts | -- |
acquia.get_canvas_page | Get Canvas page with full component tree | uuid |
acquia.list_components | Discover all Code Components by introspecting Canvas pages | -- |
Requires: ACQUIA_SOURCE_URL, ACQUIA_SOURCE_CLIENT_ID, ACQUIA_SOURCE_CLIENT_SECRET environment variables.
Config Resolution (6 tools)
| Tool | Description | Required Params |
|---|---|---|
config.sync | Resolve ALL config templates for a developer (one call = all configs) | -- |
config.get | Resolve a single config template by ID | id |
config.list | List all available config templates with descriptions | -- |
config.health | Check config service health (token resolver, template availability) | -- |
config.endpoints | Get public endpoint URLs (mcp.$DOMAIN, dmcp.$DOMAIN) | -- |
config.otel | Get OpenTelemetry config for GitLab observability (HTTP/gRPC endpoints, env vars) | -- |
SSE Transport
The SSE (Server-Sent Events) transport enables remote MCP connections, primarily for the Oracle Cloud deployment at mcp.blueflyagents.com.
HTTP Endpoints
| Method | Path | Description |
|---|---|---|
GET | /sse | Establishes SSE connection. Creates SSEServerTransport with /message path, connects to MCP server. |
POST | /message | JSON-RPC message endpoint (handled by SSEServerTransport). |
GET | /health | Returns JSON health status including tool count and OTel status. |
OPTIONS | * | CORS preflight handler (returns 204). |
Health Check Response
{ "status": "healthy", "transport": "sse", "tools": 88, "otel": { "enabled": true, "endpoint": "http://87749026.otel.gitlab-o11y.com:4318", "serviceName": "agent-protocol" }, "timestamp": "2026-02-17T12:00:00.000Z" }
Connection Lifecycle
- Client sends
GET /sseto establish SSE stream - Server creates
SSEServerTransportwith/messageas the post-back path - Server connects the MCP
Serverinstance to the transport - Client sends JSON-RPC tool calls via
POST /message - Server responds via the SSE stream
OpenTelemetry Integration
Module: src/mcp/otel.ts
Initialization
export async function initTracing(): Promise<void> { // Dynamically imports @opentelemetry/sdk-node and @opentelemetry/exporter-trace-otlp-http // If not installed, gracefully no-ops (api package provides no-op tracer) const sdk = new NodeSDK({ serviceName: process.env.OTEL_SERVICE_NAME ?? 'agent-protocol', traceExporter: new OTLPTraceExporter({ url: `${endpoint}/v1/traces` }), }); sdk.start(); }
Tool Call Tracing
Every tool execution is wrapped via recordToolCall():
export async function recordToolCall<T>( toolName: string, args: Record<string, unknown>, result: () => Promise<T> ): Promise<T> { return withSpan(`mcp.tool.${toolName}`, async (span) => { span.setAttribute('mcp.tool.name', toolName); span.setAttribute('mcp.tool.group', toolName.split('.')[0]); const start = performance.now(); try { const value = await result(); span.setAttribute('mcp.tool.success', true); return value; } finally { span.setAttribute('mcp.tool.duration_ms', Math.round(performance.now() - start)); } }); }
Span Attributes
| Attribute | Example | Description |
|---|---|---|
mcp.tool.name | gitlab.create_issue | Fully-qualified tool name |
mcp.tool.group | gitlab | Capability group prefix |
mcp.tool.success | true / false | Whether execution succeeded |
mcp.tool.duration_ms | 142 | Execution time in milliseconds |
Configuration
- Endpoint:
http://87749026.otel.gitlab-o11y.com:4318/v1/traces(GitLab Observability) - Required packages (optional -- gracefully no-ops if missing):
@opentelemetry/sdk-node@opentelemetry/exporter-trace-otlp-http
- Always present:
@opentelemetry/api(provides no-op tracer when SDK not installed) - Shutdown: Hooks into
SIGTERMfor graceful SDK shutdown
Config Resolution System
The config resolution system provides template-based configuration with dynamic token substitution.
Token Resolver
The token resolver reads workspace.json from NAS (/Volumes/AgentPlatform/config/workspace.json) and substitutes $TOKEN placeholders in templates with actual values from the tokens section.
Config Templates
Located in src/config/templates/:
| Template | ID | Description |
|---|---|---|
settings.json | settings | General platform settings |
claude-desktop.json | claude-desktop | Claude Desktop MCP server config |
identities.json | identities | Developer identity mappings |
mcp-servers/ | (directory) | MCP server connection configs |
agents-index.json | agents-index | Agent registry index |
slash-commands.json | slash-commands | CLI slash command definitions |
iterm2-config.json | iterm2-config | iTerm2 terminal configuration |
buildkit-state.json | buildkit-state | BuildKit CLI state |
tdd-state.json | tdd-state | TDD workflow state |
manifest.json | manifest | Project manifest template |
Merge Strategies
When syncing configs that may have local modifications, the system supports these merge strategies:
- preserve-secrets: Preserves locally-set secret values (tokens, keys)
- preserve-preferences: Preserves user-specific preferences
- preserve-hooks-plugins: Preserves custom hooks and plugin configurations
CLI Commands
# Sync all configs (resolve templates, write to output paths) npx agent-protocol config sync npx agent-protocol config sync --dry-run # List available templates npx agent-protocol config list # Get a specific template resolved npx agent-protocol config get settings npx agent-protocol config get claude-desktop # Check config service health npx agent-protocol config health # Get OTel configuration npx agent-protocol config otel
Deployment
Docker Image
Dockerfile: infrastructure/Dockerfile.mcp-sse
Multi-stage build:
- Build stage (
node:20-alpine): Installs all dependencies, compiles TypeScript - Runtime stage (
node:20-alpine): Production dependencies only, non-root user,tinias init,curlfor healthcheck
FROM node:20-alpine AS builder # ... npm ci, tsc ... FROM node:20-alpine AS runtime RUN apk add --no-cache curl tini RUN addgroup -g 1001 -S appgroup && adduser -u 1001 -S appuser -G appgroup # ... production npm ci, copy dist/ ... USER appuser HEALTHCHECK \ CMD curl -f http://localhost:3100/health || exit 1 ENTRYPOINT ["/sbin/tini", "--"] CMD ["node", "dist/mcp/server.js"]
Docker Compose
File: infrastructure/docker-compose.mcp-sse.yml
Two services:
- mcp-sse: The MCP SSE server on port 3100
- cloudflared: Cloudflare tunnel sidecar that exposes
mcp.blueflyagents.com
services: mcp-sse: build: context: .. dockerfile: infrastructure/Dockerfile.mcp-sse image: registry.gitlab.com/blueflyio/agent-platform/agent-protocol/mcp-sse:latest ports: - "3100:3100" environment: - MCP_TRANSPORT=sse - MCP_PORT=3100 - OTEL_EXPORTER_OTLP_ENDPOINT=http://87749026.otel.gitlab-o11y.com:4318 - OTEL_SERVICE_NAME=agent-protocol volumes: - /Volumes/AgentPlatform/config/workspace.json:/app/config/workspace.json:ro - ~/.tokens/:/run/secrets/:ro healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3100/health"] cloudflared: image: cloudflare/cloudflared:latest command: tunnel run environment: - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN} depends_on: mcp-sse: condition: service_healthy
Public URL
mcp.blueflyagents.com via Cloudflare tunnel, pointing to the SSE server on port 3100.
CI/CD Pipeline
The .gitlab-ci.yml defines these stages:
| Stage | Description |
|---|---|
validate | Lint, type-check, schema validation |
test | Unit tests, integration tests |
build | TypeScript compilation, Docker image build |
security | SAST, Container Scanning, Dependency Scanning, Secret Detection |
publish | npm package publish to GitLab registry, Docker image push |
deploy | kubectl rolling update to Oracle k3s cluster with OTel deploy trace |
Container Registry
registry.gitlab.com/blueflyio/agent-platform/agent-protocol/mcp-sse:latest
Running Locally
stdio Transport (Claude Desktop, CLI)
# Run directly with tsx (development) npm run start:mcp-server # Which executes: tsx src/mcp/server.ts
This starts the MCP server on stdio transport, suitable for Claude Desktop's mcpServers configuration:
{ "mcpServers": { "agent-protocol": { "command": "node", "args": ["${packagePath}/dist/mcp/server.js"], "env": { "NODE_ENV": "production" } } } }
SSE Transport (Oracle mode testing)
# Run SSE server with verbose logging npm run start:mcp-sse # Which executes: MCP_TRANSPORT=sse MCP_PORT=3100 MCP_VERBOSE=true tsx src/mcp/server.ts
Docker Build
# Build the SSE Docker image npm run build:mcp-sse # Which executes: docker build -t agent-protocol-mcp-sse -f infrastructure/Dockerfile.mcp-sse .
Docker Compose (Full Stack)
# Start MCP SSE server + Cloudflare tunnel sidecar docker compose -f infrastructure/docker-compose.mcp-sse.yml up -d # View logs docker compose -f infrastructure/docker-compose.mcp-sse.yml logs -f # Stop docker compose -f infrastructure/docker-compose.mcp-sse.yml down
Config Sync
# Sync all configs (resolve templates from workspace.json) npx agent-protocol config sync # Preview without writing npx agent-protocol config sync --dry-run # List available config templates npx agent-protocol config list # Resolve a single template npx agent-protocol config get settings # Check health npx agent-protocol config health # Get OpenTelemetry configuration npx agent-protocol config otel
Environment Variables
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | stdio | Transport mode: stdio or sse |
MCP_PORT | 3100 | SSE server port |
MCP_VERBOSE | false | Enable debug logging |
GITLAB_TOKEN | ~/.tokens/gitlab | GitLab API token (Personal Access Token) |
OTEL_EXPORTER_OTLP_ENDPOINT | http://87749026.otel.gitlab-o11y.com:4318 | OpenTelemetry OTLP collector endpoint |
OTEL_SERVICE_NAME | agent-protocol | Service name for OTel spans |
AGENT_PLATFORM_CONFIG | /Volumes/AgentPlatform/config/workspace.json | Path to workspace.json for config resolution |
ACQUIA_SOURCE_URL | -- | Acquia Source instance URL (required for acquia.* tools) |
ACQUIA_SOURCE_CLIENT_ID | -- | Acquia Source OAuth client ID |
ACQUIA_SOURCE_CLIENT_SECRET | -- | Acquia Source OAuth client secret |
GITLAB_PROJECT_ID | -- | Default GitLab project ID for knowledge graph tools |
NODE_ENV | development | Node environment (production in Docker) |
MCP Resources
In addition to tools, the server exposes MCP resources that can be read by clients:
| URI | Name | Description |
|---|---|---|
agent://agents/registry | Agent Registry | Complete list of registered agents |
agent://agents/{id} | Agent Manifest | Individual agent manifest data |
gitlab://observability | GitLab Ultimate | Observability, security scanning, model registry, KAS |
compliance://policies/{id} | Compliance Policy | Cedar policy document |
vector://collections/{name} | Vector Collection | Qdrant collection metadata |
k8s://deployments/{namespace}/{name} | K8s Deployment | Kubernetes deployment details |
workflow://workflows/{id} | Workflow Definition | Workflow configuration |
workflow://executions/{id} | Workflow Execution | Execution status and history |
config://templates | Config Templates | Available config templates with IDs and descriptions |
config://endpoints | Public Endpoints | Public MCP and dashboard endpoint URLs |
config://health | Config Health | Config service health status |
Related Documentation
- Architecture Overview -- System components, data flow, security model
- Agent Protocol npm guide -- npm package reference
- Separation of Duties -- Package ownership rules for
@bluefly/agent-protocol - MCP Registry API Reference -- MCP server discovery API
- Agent Protocol Audit -- Security audit report
- Oracle VM Disaster Recovery -- Oracle Cloud deployment recovery procedures
- MCP-First Architecture -- Platform-wide MCP architecture patterns
- GitLab Project: https://gitlab.com/blueflyio/agent-platform/agent-protocol
- MCP Specification: https://modelcontextprotocol.io/
- OSSA Standard: https://gitlab.com/blueflyio/openstandardagents