Skip to content
Back to MDflow

Card snapshot

mdflow.cz · 2026-07-08 05:29:38 UTC · ffbd07bc520a48411c72571b6a705570cd98e48eed6dcbff2964230b4ec94e81

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.3.0",
  "name": "MDflow",
  "description": "Agent-controllable markdown workspace. Folders hold .md documents an AI agent can read, create, update, organize, and share. Control it via the MCP server (preferred) at https://mdflow.cz/api/mcp or the REST API at https://mdflow.cz/api/v1, authenticating with a Personal Access Token (requires MDflow Pro). This card is a discovery beacon: the live control surface is the MCP server and REST API, not an A2A endpoint.",
  "provider": {
    "organization": "MDflow",
    "url": "https://mdflow.cz"
  },
  "version": "1.0.0",
  "documentationUrl": "https://mdflow.cz/docs.md",
  "preferredTransport": "JSONRPC",
  "url": "https://mdflow.cz/api/mcp",
  "additionalInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://mdflow.cz/api/mcp"
    },
    {
      "transport": "HTTP+JSON",
      "url": "https://mdflow.cz/api/v1"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/markdown",
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/markdown",
    "application/json"
  ],
  "securitySchemes": {
    "personalAccessToken": {
      "type": "http",
      "scheme": "bearer",
      "description": "MDflow Personal Access Token (mdf_...), created at https://mdflow.cz/settings. Requires MDflow Pro. Send as: Authorization: Bearer mdf_..."
    },
    "oauth2": {
      "type": "oauth2",
      "description": "Sign in with your MDflow account (OAuth 2.1). Claude.ai and ChatGPT connect to https://mdflow.cz/api/mcp by adding it as a connector and signing in \u2014 no token to copy. Requires MDflow Pro.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://avpohqkozlquuxzqqtsx.supabase.co/auth/v1/oauth/authorize",
          "tokenUrl": "https://avpohqkozlquuxzqqtsx.supabase.co/auth/v1/oauth/token",
          "scopes": {
            "openid": "identity",
            "email": "email",
            "profile": "profile"
          }
        }
      }
    }
  },
  "security": [
    {
      "personalAccessToken": []
    },
    {
      "oauth2": []
    }
  ],
  "skills": [
    {
      "id": "documents",
      "name": "Manage markdown documents",
      "description": "List, read, create, rename, move, and delete markdown documents in folders you own. Each document carries its full path (workspace \u2192 \u2026 \u2192 document) and a compounded description \u2014 the workspace+folder context cascade.",
      "tags": [
        "markdown",
        "documents",
        "crud"
      ],
      "examples": [
        "Create a document called meeting-notes.md in my Project folder",
        "Rename a document",
        "Show the full path and context of a document"
      ]
    },
    {
      "id": "workspaces",
      "name": "Manage workspaces",
      "description": "List, create, rename, describe, and delete workspaces, the top-level bucket above folders that every folder belongs to.",
      "tags": [
        "workspaces",
        "organize"
      ]
    },
    {
      "id": "folders",
      "name": "Organize folders",
      "description": "List, read (with full path and the compounded description cascade from workspace down to folder), create, rename, move, and delete folders, and edit folder descriptions, which act as retrieval context for the documents inside.",
      "tags": [
        "folders",
        "organize"
      ]
    },
    {
      "id": "context",
      "name": "Topic-based retrieval",
      "description": "Find the most relevant markdown by ranking folder descriptions first, then titles, then fetching the best-matching document bodies. When a topic clearly belongs to one workspace, pick the best-matching workspace first and pass workspaceId to scope retrieval there; omit it for broad or ambiguous topics to rank across the whole account.",
      "tags": [
        "search",
        "retrieval",
        "rag"
      ],
      "examples": [
        "Get context about my API documentation from mdflow",
        "Get context about billing, scoped to my Work workspace"
      ]
    },
    {
      "id": "sharing",
      "name": "Share documents",
      "description": "Turn on public unguessable share links (optionally with comments), or privately share a document with specific people by email.",
      "tags": [
        "sharing",
        "publish"
      ]
    }
  ]
}