{
    "name": "Matt Artz Knowledge Graph Agent",
    "description": "Read-only agent over the Matt Artz knowledge graph. Send a text query or name a skill; the agent answers with a completed task whose artifact carries publications, entities, podcasts, events, software, citations, or graph data as JSON. Every skill is also reachable over MCP and REST; see the site-surfaces extension.",
    "supportedInterfaces": [
        {
            "url": "https://www.mattartz.me/wp-json/kgh/a2a",
            "protocolBinding": "JSONRPC",
            "protocolVersion": "1.0"
        }
    ],
    "provider": {
        "organization": "Matt Artz",
        "url": "https://www.mattartz.me/about-matt-artz/"
    },
    "version": "4.33.0",
    "documentationUrl": "https://www.mattartz.me/agents.json",
    "capabilities": {
        "streaming": false,
        "pushNotifications": false,
        "extendedAgentCard": false,
        "extensions": [
            {
                "uri": "https://www.mattartz.me/a2a/extensions/site-surfaces/v1",
                "description": "The same knowledge graph over other surfaces (MCP, REST, OpenAPI, llms.txt, RDF Turtle) and the machine-use permissions the site declares. Informational; a client needs nothing from it to use the A2A interface.",
                "required": false,
                "params": {
                    "endpoints": {
                        "mcp": "https://www.mattartz.me/wp-json/mcp/mattartz-kg",
                        "mcpDiscovery": "https://www.mattartz.me/.well-known/mcp.json",
                        "agentsJson": "https://www.mattartz.me/agents.json",
                        "openapi": "https://www.mattartz.me/wp-json/kgh/v1/openapi.json",
                        "llmsTxt": "https://www.mattartz.me/llms.txt",
                        "llmsTxtFull": "https://www.mattartz.me/llms-full.txt",
                        "schemaGraph": "https://www.mattartz.me/wp-json/kgh/schemagraph",
                        "graphTurtle": "https://www.mattartz.me/graph.ttl",
                        "graphDataset": "https://www.mattartz.me/graph-dataset.xml",
                        "entityInvolvements": "https://www.mattartz.me/wp-json/kgh/v1/entity/{id}/involvements",
                        "entityInvolvementsBySlug": "https://www.mattartz.me/wp-json/kgh/v1/entity/by-slug/{slug}/involvements"
                    },
                    "mcp": "Model Context Protocol runtime endpoint. POST JSON-RPC 2.0 to invoke 9 read-only tools: kgh-search-knowledge-graph, kgh-list-by-type, kgh-fetch-schema-graph, kgh-get-page-graph, kgh-get-entity-involvements, kgh-get-related-content, kgh-get-post-content, kgh-get-citation, kgh-view-graph. Compatible with Claude Desktop, Cursor, Continue, Perplexity, and Claude.ai Custom Connector. Anonymous access.",
                    "webmcp": {
                        "tools": [
                            "search_knowledge_graph",
                            "open_entity",
                            "fetch_schema_graph"
                        ],
                        "publicationTools": [
                            "cite_this",
                            "list_references",
                            "open_doi"
                        ],
                        "documentation": "https://www.mattartz.me/mcp/#webmcp",
                        "description": "Live in-page tools (W3C WebMCP, document.modelContext) for agents that open a page of this site in a compatible browser, such as the ChatGPT desktop app's built-in browser or Chrome under the WebMCP origin trial: every page exposes search_knowledge_graph, open_entity, fetch_schema_graph. Publication pages add cite_this, list_references, open_doi. Page-bound: nothing is callable until a page is open, and nothing to install. Distinct from the remote MCP endpoint, which serves the same graph without a browser."
                    },
                    "permissions": {
                        "aiTraining": true,
                        "search": true,
                        "aiInput": true
                    },
                    "rights": "All content and data are (c) Matt Artz. All rights reserved."
                }
            }
        ]
    },
    "defaultInputModes": [
        "text/plain",
        "application/json"
    ],
    "defaultOutputModes": [
        "application/json"
    ],
    "skills": [
        {
            "id": "search_knowledge_graph",
            "name": "Search knowledge graph",
            "description": "Full-text search across entities, publications, podcasts, software, music, events, and pages, with optional content-type and Schema.org type filters. A plain text message runs this skill.",
            "tags": [
                "search",
                "knowledge-graph"
            ],
            "examples": [
                "design anthropology",
                "{\"skill\":\"search_knowledge_graph\",\"input\":{\"query\":\"ethnography\",\"post_type\":\"article\",\"limit\":5}}"
            ],
            "inputModes": [
                "text/plain",
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "list_by_type",
            "name": "List items of one content type",
            "description": "Enumerates every published item of one content type (entity, post, article, book, chapter, podcast, music, software, artwork, event, op-ed, page, press_media) with pagination. Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "knowledge-graph",
                "listing"
            ],
            "examples": [
                "{\"skill\":\"list_by_type\",\"input\":{\"post_type\":\"book\"}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "fetch_schema_graph",
            "name": "Fetch the schema graph (JSON-LD)",
            "description": "Returns the site knowledge graph as Schema.org JSON-LD objects, paginated at 100 objects per page (page and per_page inputs), with optional type filtering. The single-file export is graph.ttl, named in the site-surfaces extension. Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "knowledge-graph",
                "jsonld",
                "schema-org"
            ],
            "examples": [
                "{\"skill\":\"fetch_schema_graph\",\"input\":{\"type\":\"Book\"}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "get_page_graph",
            "name": "Get the JSON-LD of one page",
            "description": "Returns the Schema.org JSON-LD graph emitted for one page, by URL or post ID. Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "knowledge-graph",
                "jsonld",
                "page"
            ],
            "examples": [
                "{\"skill\":\"get_page_graph\",\"input\":{\"url\":\"https://www.mattartz.me/entities/ethnography/\"}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "get_entity_involvements",
            "name": "List all content referencing an entity",
            "description": "Returns every content post of any graph content type that references a given entity, grouped by post type, with role labels (author, editor, performer, organizer, contributor, actor, mention, colleague, founder, creator). Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "entity",
                "reverse-relationships",
                "knowledge-graph"
            ],
            "examples": [
                "{\"skill\":\"get_entity_involvements\",\"input\":{\"entity_slug\":\"ethnography\"}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "related_content",
            "name": "Find related content",
            "description": "Returns related entities and publications for a given post, by URL or post ID, scored through the knowledge graph relationship layer. Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "recommendations",
                "knowledge-graph"
            ],
            "examples": [
                "{\"skill\":\"related_content\",\"input\":{\"url\":\"https://www.mattartz.me/entities/ethnography/\",\"limit\":10}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "get_post_content",
            "name": "Read a post",
            "description": "Returns the readable text of one published post or page, by URL or post ID, with its metadata. Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "content",
                "knowledge-graph"
            ],
            "examples": [
                "{\"skill\":\"get_post_content\",\"input\":{\"url\":\"https://www.mattartz.me/what-is-anthropology/\"}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "get_citation",
            "name": "Cite a publication",
            "description": "Returns formatted citations (APA, Chicago, MLA, BibTeX) for one publication, by URL or post ID. Invoke by naming the skill in message.metadata.skill and passing input as a data part.",
            "tags": [
                "citation",
                "publications"
            ],
            "examples": [
                "{\"skill\":\"get_citation\",\"input\":{\"url\":\"https://www.mattartz.me/publications/\",\"format\":\"apa\"}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        }
    ]
}