{
  "schema": "workport.mcp-server-card.v1",
  "schemaUrl": "https://mcp.ktortolini.dev/.well-known/mcp/server-card.json",
  "updatedAt": "2026-05-17",
  "name": "workport",
  "version": "0.1.0",
  "description": "MCP gateway for Workstream RSS, Workdoc resume, Workblock NVIDIA cluster metrics, assisted skills, and memo timeboxes.",
  "protocol": {
    "name": "Model Context Protocol",
    "version": "2025-06-18"
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://mcp.ktortolini.dev/api/mcp",
    "methods": [
      "GET",
      "POST",
      "DELETE"
    ]
  },
  "authentication": {
    "type": "bearer",
    "combination": "all",
    "requiredHeaders": [
      "X-Agent-ID-Token",
      "Authorization"
    ],
    "description": "MCP requires both a fresh Workport-audience Agent ID and the existing bearer scopes. Identity alone and bearer alone are rejected. Send credentials only to the canonical receiver and refresh identity before expiry.",
    "agentId": {
      "required": true,
      "header": "X-Agent-ID-Token",
      "issuer": "https://auth.agentid.com",
      "receiverOrigin": "https://mcp.ktortolini.dev",
      "audience": "The registered Workport Agent ID client ID"
    },
    "header": "Authorization",
    "challenge": "Bearer realm=\"workport-mcp\"",
    "requiredScopes": [
      "rss:read",
      "cvr:read",
      "llm:read",
      "skills:read",
      "memos:write"
    ]
  },
  "resources": [
    {
      "id": "workstream-rss",
      "description": "Configured Workstream RSS feeds and bounded entries.",
      "readOnly": true
    },
    {
      "id": "workdoc-resume",
      "description": "Public Workdoc resume sections.",
      "readOnly": true
    },
    {
      "id": "workblock-nvidia-cluster",
      "description": "Current Workblock NVIDIA cluster metric actions.",
      "readOnly": true
    },
    {
      "id": "agentic-skills",
      "description": "Current Neon-backed skill registry rows.",
      "readOnly": true
    },
    {
      "id": "memo-timeboxes",
      "description": "Current Neon-backed memo timebox rows.",
      "readOnly": false
    }
  ],
  "tools": [
    {
      "name": "rss.syndication_auditing",
      "description": "Inspect bounded Workstream RSS entries for syndication auditing.",
      "requiredScopes": [
        "rss:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 1
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 10
          },
          "feedId": {
            "type": "integer",
            "minimum": 1
          },
          "author": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "searchPhrase": {
            "type": "string",
            "minLength": 2,
            "maxLength": 160
          }
        },
        "required": []
      }
    },
    {
      "name": "rss.syndication_catalog",
      "description": "Return a compact summary of configured Workstream RSS feeds and recent activity.",
      "requiredScopes": [
        "rss:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 20
          }
        },
        "required": []
      }
    },
    {
      "name": "cvr.document_auditing",
      "description": "Inspect bounded Workdoc resume sections for document auditing.",
      "requiredScopes": [
        "cvr:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "sections": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "type": "string",
              "enum": [
                "experience",
                "technologies",
                "education",
                "certificates"
              ]
            }
          },
          "includeMarkdown": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "cvr.document_catalog",
      "description": "Return a compact catalog of Workdoc resume section metadata without Markdown content.",
      "requiredScopes": [
        "cvr:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "sections": {
            "type": "array",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "type": "string",
              "enum": [
                "experience",
                "technologies",
                "education",
                "certificates"
              ]
            }
          }
        },
        "required": []
      }
    },
    {
      "name": "llm.inference_auditing",
      "description": "Inspect bounded Workblock NVIDIA cluster metric actions for inference auditing.",
      "requiredScopes": [
        "llm:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 1
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 10
          },
          "actionId": {
            "type": "integer",
            "minimum": 1
          },
          "includeManifestText": {
            "type": "boolean",
            "default": false
          },
          "includeMetricChart": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "llm.inference_catalog",
      "description": "Return a compact summary of current Workblock NVIDIA cluster metric actions.",
      "requiredScopes": [
        "llm:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 20
          }
        },
        "required": []
      }
    },
    {
      "name": "secops.security_auditing",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "target": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "objective": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "audit",
              "plan",
              "fix",
              "explain",
              "verify"
            ],
            "default": "audit"
          },
          "concerns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "preferredSkills": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxChanges": {
            "type": "string",
            "enum": [
              "none",
              "minimal",
              "bounded"
            ],
            "default": "none"
          },
          "evidenceLevel": {
            "type": "string",
            "enum": [
              "summary",
              "line-references",
              "command-output",
              "reproducible-demo"
            ],
            "default": "line-references"
          }
        },
        "required": []
      }
    },
    {
      "name": "secops.security_catalog",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "concern": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "includeSkills": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "devops.deployment_auditing",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "target": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "objective": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "audit",
              "plan",
              "fix",
              "explain",
              "verify"
            ],
            "default": "audit"
          },
          "concerns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "preferredSkills": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxChanges": {
            "type": "string",
            "enum": [
              "none",
              "minimal",
              "bounded"
            ],
            "default": "none"
          },
          "evidenceLevel": {
            "type": "string",
            "enum": [
              "summary",
              "line-references",
              "command-output",
              "reproducible-demo"
            ],
            "default": "line-references"
          }
        },
        "required": []
      }
    },
    {
      "name": "devops.deployment_catalog",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "concern": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "includeSkills": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "ai.code_auditing",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "target": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "objective": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "audit",
              "plan",
              "fix",
              "explain",
              "verify"
            ],
            "default": "audit"
          },
          "concerns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "preferredSkills": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxChanges": {
            "type": "string",
            "enum": [
              "none",
              "minimal",
              "bounded"
            ],
            "default": "none"
          },
          "evidenceLevel": {
            "type": "string",
            "enum": [
              "summary",
              "line-references",
              "command-output",
              "reproducible-demo"
            ],
            "default": "line-references"
          }
        },
        "required": []
      }
    },
    {
      "name": "ai.code_catalog",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "concern": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "includeSkills": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "perf.performance_auditing",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "target": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "objective": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "audit",
              "plan",
              "fix",
              "explain",
              "verify"
            ],
            "default": "audit"
          },
          "concerns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "preferredSkills": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxChanges": {
            "type": "string",
            "enum": [
              "none",
              "minimal",
              "bounded"
            ],
            "default": "none"
          },
          "evidenceLevel": {
            "type": "string",
            "enum": [
              "summary",
              "line-references",
              "command-output",
              "reproducible-demo"
            ],
            "default": "line-references"
          }
        },
        "required": []
      }
    },
    {
      "name": "perf.performance_catalog",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "concern": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "includeSkills": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "docs.documentation_auditing",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "target": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "objective": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "audit",
              "plan",
              "fix",
              "explain",
              "verify"
            ],
            "default": "audit"
          },
          "concerns": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "preferredSkills": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maxChanges": {
            "type": "string",
            "enum": [
              "none",
              "minimal",
              "bounded"
            ],
            "default": "none"
          },
          "evidenceLevel": {
            "type": "string",
            "enum": [
              "summary",
              "line-references",
              "command-output",
              "reproducible-demo"
            ],
            "default": "line-references"
          }
        },
        "required": []
      }
    },
    {
      "name": "docs.documentation_catalog",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "concern": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "typescript",
              "go",
              "web",
              "infra",
              "data",
              "all",
              "unknown"
            ],
            "default": "unknown"
          },
          "includeSkills": {
            "type": "boolean",
            "default": true
          }
        },
        "required": []
      }
    },
    {
      "name": "memos.timebox_recording",
      "description": "Persist a completed memo timebox in Workport's Neon-backed storage.",
      "requiredScopes": [
        "memos:write"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "timeboxKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "summary": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          },
          "memos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "skillsUsed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "toolsUsed": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "verificationOutcomes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "repository": {
            "type": [
              "string",
              "null"
            ]
          },
          "changeIdentifier": {
            "type": [
              "string",
              "null"
            ]
          },
          "startedAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time"
          },
          "durationMinutes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000
          },
          "piMetrics": {
            "type": [
              "object",
              "null"
            ]
          }
        },
        "required": [
          "title",
          "summary",
          "memos",
          "skillsUsed",
          "toolsUsed",
          "verificationOutcomes",
          "startedAt",
          "completedAt",
          "durationMinutes"
        ]
      }
    },
    {
      "name": "memos.timebox_catalog",
      "description": "Summarize current memo timeboxes for a bounded reporting period.",
      "requiredScopes": [
        "skills:read"
      ],
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "startDate": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "endDate": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "repository": {
            "type": [
              "string",
              "null"
            ]
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 50
          }
        },
        "required": [
          "startDate",
          "endDate",
          "pageSize"
        ]
      }
    }
  ]
}
