{
  "serverInfo": {
    "name": "Blueprint Nexus",
    "title": "Blueprint Nexus — Knowledge Graph & Agent Fleet",
    "version": "0.1.0",
    "description": "Query, ingest into, and mutate the Blueprint Nexus workspace Knowledge Graph (BKN) from any MCP client."
  },
  "description": "Blueprint Nexus exposes its workspace Knowledge Graph as Model Context Protocol tools over Streamable HTTP (JSON-RPC 2.0) and HTTP+SSE. Every call is authenticated with a workspace API key and scoped to that workspace.",
  "authentication": {
    "required": true,
    "schemes": [
      "bearer"
    ],
    "instructions": "Send `Authorization: Bearer <workspace-api-key>`. Create a key in Blueprint Nexus under Settings → MCP & API Keys (or POST /api/mcp/keys while signed in). Keys are prefixed bsc_live_."
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://www.bluesc.org/api/mcp",
    "methods": [
      "POST",
      "OPTIONS"
    ],
    "contentTypes": [
      "application/json"
    ],
    "description": "Streamable HTTP transport. POST a JSON-RPC 2.0 request (single object or batch) and receive application/json. Stateless: authenticate every request with the bearer key; no session id is required."
  },
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://www.bluesc.org/api/mcp",
      "description": "Streamable HTTP transport — POST JSON-RPC 2.0 (tools/list, tools/call) and receive JSON."
    },
    {
      "type": "sse",
      "url": "https://www.bluesc.org/api/mcp/sse",
      "description": "HTTP+SSE transport for clients that expect an `event: endpoint` stream; the stream advertises /api/mcp/messages for tool calls."
    }
  ],
  "documentation": {
    "openapi": "https://www.bluesc.org/openapi.json",
    "developerGuide": "https://www.bluesc.org/developers",
    "llmsTxt": "https://www.bluesc.org/llms.txt"
  },
  "tools": [
    {
      "name": "bkn_list_workspaces",
      "description": "List all available workspaces in Blueprint Nexus with their node counts, descriptions, and modification timestamps.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "number",
            "description": "Maximum number of workspaces to return (default: 10)."
          }
        }
      }
    },
    {
      "name": "bkn_create_workspace",
      "description": "Create a new project workspace in Blueprint Nexus with automatic registration of ownership, workspace settings, documentation, and initial Knowledge Graph (BKN) nodes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name or title of the workspace (required)."
          },
          "description": {
            "type": "string",
            "description": "Charter, vision, or architectural summary of the workspace."
          },
          "problem_statement": {
            "type": "string",
            "description": "Core problem or market opportunity addressed by this workspace."
          },
          "target_audience": {
            "type": "string",
            "description": "Target user personas, market segment, or customer profiles."
          },
          "technologies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tech stack, frameworks, or tools used in this workspace."
          },
          "scope": {
            "type": "string",
            "enum": [
              "small",
              "medium",
              "large"
            ],
            "description": "Estimated scope or scale (default: 'medium')."
          },
          "key_features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Key product capabilities or deliverables."
          },
          "work_mode": {
            "type": "string",
            "enum": [
              "solo",
              "team",
              "swarm"
            ],
            "description": "Workspace collaboration mode (default: 'solo')."
          },
          "created_by": {
            "type": "string",
            "description": "Optional UUID of the user who owns this workspace. Defaults to API key owner or admin."
          },
          "initial_nodes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "metadata": {
                  "type": "object"
                }
              },
              "required": [
                "name",
                "label"
              ]
            },
            "description": "Optional array of initial Knowledge Graph nodes to seed into the workspace BKN."
          }
        },
        "required": [
          "name"
        ]
      }
    },
    {
      "name": "bkn_query_graph",
      "description": "Search and retrieve nodes and edges from the workspace Knowledge Graph (BKN). Returns nodes, properties, and typed relationships.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional text query to match node names, descriptions, or properties."
          },
          "label": {
            "type": "string",
            "description": "Optional category filter: 'Rule', 'Decision', 'Insight', 'Concept' (or execution types 'Goal', 'Task', 'Resource', 'Signal')."
          },
          "limit": {
            "type": "number",
            "description": "Max number of nodes to return (default: 50)."
          }
        }
      }
    },
    {
      "name": "bkn_ingest_content",
      "description": "Universal Graph Ingestion engine. Analyzes raw unstructured text, application logs, specs, or code snippets, extracts entities and relationships, and automatically upserts them into the workspace Knowledge Graph.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The raw text, markdown document, code, or unstructured string to ingest into the Knowledge Graph."
          },
          "source_name": {
            "type": "string",
            "description": "Name or identifier of the source (e.g., 'mobile-app-logs', 'linear-webhook', 'user-doc.md')."
          },
          "source_type": {
            "type": "string",
            "description": "Category of the source (default: 'mcp_external_app')."
          }
        },
        "required": [
          "content"
        ]
      }
    },
    {
      "name": "bkn_create_node",
      "description": "Explicitly create or update a single Knowledge Node in the workspace Knowledge Graph.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name or title of the node (e.g., 'Auth Token Expiration Exception')."
          },
          "label": {
            "type": "string",
            "description": "Taxonomy label for the node: 'Rule', 'Decision', 'Insight', 'Concept' (or execution types 'Goal', 'Task', 'Resource', 'Signal')."
          },
          "description": {
            "type": "string",
            "description": "Detailed description or context for this node."
          },
          "metadata": {
            "type": "object",
            "description": "Optional key-value JSON object containing custom properties, external IDs, or telemetry."
          }
        },
        "required": [
          "name",
          "label",
          "description"
        ]
      }
    },
    {
      "name": "bkn_link_nodes",
      "description": "Create a directed, typed edge between two existing nodes in the workspace Knowledge Graph.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source_name": {
            "type": "string",
            "description": "Name of the source node."
          },
          "target_name": {
            "type": "string",
            "description": "Name of the target node."
          },
          "relationship_type": {
            "type": "string",
            "description": "Type of relationship: 'governs', 'decided_by', 'supports', 'conflicts_with', 'implements', 'supersedes', 'aligns', 'requires', 'blocks', 'triggers', 'references'."
          },
          "description": {
            "type": "string",
            "description": "Rationale or explanation of why these nodes are linked."
          }
        },
        "required": [
          "source_name",
          "target_name",
          "relationship_type"
        ]
      }
    },
    {
      "name": "bkn_get_workspace_context",
      "description": "Fetch comprehensive context about the workspace, including executive summary, tech spec, open user stories, tasks, and key Knowledge Graph nodes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_docs": {
            "type": "boolean",
            "description": "Whether to include full technical spec and executive summary (default: true)."
          },
          "include_tasks": {
            "type": "boolean",
            "description": "Whether to include task epics and milestones (default: true)."
          }
        }
      }
    },
    {
      "name": "bkn_push_telemetry",
      "description": "Stream runtime telemetry, errors, or application events from an external app directly into the workspace's activity and audit log.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "event_name": {
            "type": "string",
            "description": "Short event identifier (e.g. 'payment_gateway_timeout', 'user_signup_failed')."
          },
          "severity": {
            "type": "string",
            "description": "Severity level: 'info', 'warning', 'error', 'critical'."
          },
          "payload": {
            "type": "object",
            "description": "JSON payload containing diagnostic data, stack trace, or state variables."
          }
        },
        "required": [
          "event_name",
          "payload"
        ]
      }
    },
    {
      "name": "bkn_mutate_variable",
      "description": "Mutate a Variable Node (e.g. increment daily push-ups counter, toggle smart light switch, or reset state) in the workspace Knowledge Graph. Automatically evaluates and fires connected reactive edge triggers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "node_identifier": {
            "type": "string",
            "description": "UUID or exact name of the Variable Node to mutate."
          },
          "operation": {
            "type": "string",
            "enum": [
              "increment",
              "decrement",
              "set",
              "toggle",
              "reset"
            ],
            "description": "Mutation operation to perform."
          },
          "amount": {
            "type": "number",
            "description": "Optional numeric step for increment/decrement (default: 1)."
          },
          "value": {
            "description": "New value when using the 'set' operation."
          },
          "workspace_id": {
            "type": "string",
            "description": "Optional workspace UUID."
          }
        },
        "required": [
          "node_identifier",
          "operation"
        ]
      }
    },
    {
      "name": "bkn_delete_node",
      "description": "Delete or archive a node in the workspace Knowledge Graph (BKN) and sever all connected relationships.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "node_identifier": {
            "type": "string",
            "description": "UUID or exact name of the node to delete."
          },
          "workspace_id": {
            "type": "string",
            "description": "Optional workspace UUID."
          }
        },
        "required": [
          "node_identifier"
        ]
      }
    },
    {
      "name": "bkn_unlink_nodes",
      "description": "Delete a directed relationship (edge) between two nodes in the workspace Knowledge Graph.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "source_name": {
            "type": "string",
            "description": "Name or UUID of the source node."
          },
          "target_name": {
            "type": "string",
            "description": "Name or UUID of the target node."
          },
          "relationship_type": {
            "type": "string",
            "description": "Optional relationship type."
          },
          "workspace_id": {
            "type": "string",
            "description": "Optional workspace UUID."
          }
        },
        "required": [
          "source_name",
          "target_name"
        ]
      }
    },
    {
      "name": "bkn_get_subgraph",
      "description": "Retrieve nodes scoped to a parent_uuid (or root if omitted) for fractal subgraph exploration.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "parent_uuid": {
            "type": "string",
            "description": "Optional parent node UUID. Omit or pass null to fetch top-level root nodes."
          },
          "workspace_id": {
            "type": "string",
            "description": "Optional workspace UUID."
          }
        }
      }
    },
    {
      "name": "agent_traverse_node",
      "description": "Move an autonomous agent along a connected edge to a neighboring node, updating its topological location and streaming its traversal trail.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target_node_uuid": {
            "type": "string",
            "description": "UUID of the destination node."
          },
          "reason": {
            "type": "string",
            "description": "Reason or operational intent for traversing to this node."
          },
          "agent_id": {
            "type": "string",
            "description": "Optional agent ID."
          }
        },
        "required": [
          "target_node_uuid"
        ]
      }
    },
    {
      "name": "bkn_emit_signal",
      "description": "Emit an active graph signal onto a target node or the workspace, broadcasting across the graph and alerting resident agents.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the signal (e.g. 'Auth Rate Limit Exceeded' or 'MRR Milestone Achieved')."
          },
          "target_node_uuid": {
            "type": "string",
            "description": "Optional UUID of the target knowledge node to attach this signal to."
          },
          "severity": {
            "type": "string",
            "enum": [
              "info",
              "warning",
              "critical",
              "success"
            ],
            "description": "Severity level of the signal (default: 'info')."
          },
          "signal_type": {
            "type": "string",
            "description": "Category of signal: 'agent_alert', 'metric_threshold', 'webhook_event', 'human_blocker', 'temporal_deadline'."
          },
          "description": {
            "type": "string",
            "description": "Detailed diagnostic narrative or explanation."
          },
          "propagation_mode": {
            "type": "string",
            "enum": [
              "local",
              "downstream",
              "upstream",
              "broadcast"
            ],
            "description": "Propagation ripple mode across graph topology (default: 'local')."
          },
          "payload": {
            "type": "object",
            "description": "Arbitrary structured JSON metadata/diagnostics."
          },
          "is_persistent": {
            "type": "boolean",
            "description": "If true, also mirrors as a persistent Signal node in the Knowledge Graph."
          },
          "workspace_id": {
            "type": "string",
            "description": "Optional workspace UUID."
          }
        },
        "required": [
          "title"
        ]
      }
    },
    {
      "name": "bkn_resolve_signal",
      "description": "Mark an active graph signal as resolved, recording resolution notes and timestamps.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "signal_uuid": {
            "type": "string",
            "description": "UUID of the signal to resolve."
          },
          "resolution_note": {
            "type": "string",
            "description": "Explanation of how the alert/blocker was resolved."
          }
        },
        "required": [
          "signal_uuid"
        ]
      }
    },
    {
      "name": "bkn_list_signals",
      "description": "List active and unacknowledged signals for the workspace or a specific node, ordered by severity.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target_node_uuid": {
            "type": "string",
            "description": "Optional UUID of the node to filter signals for."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of signals to retrieve (default: 50)."
          },
          "workspace_id": {
            "type": "string",
            "description": "Optional workspace UUID."
          }
        }
      }
    }
  ],
  "resources": [],
  "prompts": []
}
