AniList · Capability

AniList GraphQL API v2 — GraphQL

GraphQL — AniList. 1 operation. Lead operation: Execute a GraphQL query or mutation. Self-contained Naftiko capability covering one AniList business surface — the single POST endpoint at https://graphql.anilist.co that accepts arbitrary AniList GraphQL queries and mutations against the Media, Character, Staff, Studio, User, MediaList, Activity, Review, Thread, Notification, and AiringSchedule schema. Mutations require a Bearer OAuth2 access token; read operations against public data may be unauthenticated.

Run with Naftiko AniListAnimeMangaGraphQL

What You Can Do

POST
Executegraphql — Execute a GraphQL query or mutation against the AniList schema.
/v1/graphql

MCP Tools

execute-graphql

Execute a GraphQL query or mutation against the AniList schema.

Capability Spec

anilist-graphql.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "AniList GraphQL API v2 — GraphQL"
  description: >-
    GraphQL — AniList. 1 operation. Lead operation: Execute a GraphQL query or
    mutation. Self-contained Naftiko capability covering one AniList business
    surface — the single POST endpoint at https://graphql.anilist.co that
    accepts arbitrary AniList GraphQL queries and mutations against the Media,
    Character, Staff, Studio, User, MediaList, Activity, Review, Thread,
    Notification, and AiringSchedule schema. Mutations require a Bearer OAuth2
    access token; read operations against public data may be unauthenticated.
  tags:
    - AniList
    - Anime
    - Manga
    - GraphQL
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys:
      ANILIST_ACCESS_TOKEN: ANILIST_ACCESS_TOKEN

capability:

  # ── 1. Consumes — the upstream HTTP API this capability speaks to ─────
  consumes:
    - type: http
      namespace: "anilist-graphql"
      baseUri: "https://graphql.anilist.co"
      description: "AniList GraphQL API v2 — GraphQL business capability. Self-contained, no shared references."
      authentication:
        type: bearer
        token: "{{env.ANILIST_ACCESS_TOKEN}}"
      resources:
        - name: "graphql"
          path: "/"
          operations:
            - name: "executeGraphQL"
              method: POST
              description: "Execute a GraphQL query or mutation against the AniList schema."
              inputParameters:
                - name: "body"
                  in: body
                  type: object
                  required: true
                  description: "JSON payload with `query`, optional `variables`, and optional `operationName`."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  # ── 2. REST exposer — required default ────────────────────────────────
  exposes:
    - type: rest
      namespace: "anilist-graphql-rest"
      port: 8080
      description: "REST adapter for AniList GraphQL API v2 — GraphQL. One Spectral-compliant resource per consumed operation, prefixed with /v1."
      resources:
        - path: "/v1/graphql"
          name: "graphql"
          description: "REST surface for the AniList GraphQL endpoint."
          operations:
            - method: POST
              name: "executeGraphQL"
              description: "Execute a GraphQL query or mutation against the AniList schema."
              call: "anilist-graphql.executeGraphQL"
              with:
                body: "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."

    # ── 3. MCP exposer — required default ───────────────────────────────
    - type: mcp
      namespace: "anilist-graphql-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for AniList GraphQL API v2 — GraphQL. One tool per consumed operation, routed inline through this capability's consumes block."
      tools:
        - name: "execute-graphql"
          description: "Execute a GraphQL query or mutation against the AniList schema."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "anilist-graphql.executeGraphQL"
          with:
            body: "tools.body"
          outputParameters:
            - type: object
              mapping: "$."