{
  "serverInfo": {
    "name": "gabrimatic-portfolio-mcp",
    "title": "Gabrimatic Portfolio",
    "version": "1.0.0",
    "vendor": "Soroush Yousefpour"
  },
  "endpoint": "https://www.gabrimatic.info/api/mcp",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://www.gabrimatic.info/api/mcp",
    "protocolVersion": "2025-03-26",
    "alternative": {
      "type": "webmcp",
      "registrationScript": "https://www.gabrimatic.info/webmcp.js",
      "description": "When the homepage is loaded in an MCP-aware browser, /webmcp.js registers the same tools in-page via navigator.modelContext.registerTool."
    }
  },
  "capabilities": {
    "tools": { "listChanged": false },
    "resources": { "listChanged": false, "subscribe": false },
    "prompts": { "listChanged": false },
    "logging": {}
  },
  "tools": [
    {
      "name": "get_profile",
      "description": "Return Soroush Yousefpour's structured profile (name, location, current roles, links).",
      "readOnlyHint": true
    },
    {
      "name": "get_journey",
      "description": "Return the full ordered professional journey (Affinidi #1, City-Flock #2, Enpal #3, then reverse chronological).",
      "readOnlyHint": true
    },
    {
      "name": "get_repos",
      "description": "List Soroush's public GitHub repositories live. Accepts per_page (1-100) and sort (updated, created, pushed, full_name; default: updated).",
      "readOnlyHint": true
    },
    {
      "name": "get_page_markdown",
      "description": "Fetch the canonical Markdown representation of one of the five portfolio pages.",
      "readOnlyHint": true
    }
  ],
  "resources": {
    "uriTemplate": "https://www.gabrimatic.info/{page}",
    "pages": ["", "journey", "interests", "opensource", "definition"]
  },
  "authorization": {
    "type": "oauth2.1",
    "required": false,
    "authorizationServerMetadata": "https://www.gabrimatic.info/.well-known/oauth-authorization-server",
    "protectedResourceMetadata": "https://www.gabrimatic.info/.well-known/oauth-protected-resource",
    "scopes": ["mcp:read", "mcp:tools"],
    "note": "The MCP endpoint accepts anonymous requests for read access. OAuth 2.1 (dynamic client registration + authorization_code + PKCE, or client_credentials) is available for agents that want to authenticate."
  },
  "links": {
    "homepage": "https://www.gabrimatic.info/",
    "documentation": "https://www.gabrimatic.info/agents.html",
    "agentSkills": "https://www.gabrimatic.info/.well-known/agent-skills/index.json",
    "agentCard": "https://www.gabrimatic.info/.well-known/agent-card.json",
    "apiCatalog": "https://www.gabrimatic.info/.well-known/api-catalog",
    "oauth": {
      "registration": "https://www.gabrimatic.info/api/oauth/register",
      "authorization": "https://www.gabrimatic.info/api/oauth/authorize",
      "token": "https://www.gabrimatic.info/api/oauth/token",
      "jwks": "https://www.gabrimatic.info/.well-known/jwks.json"
    }
  }
}
