isGenAI MCP API

Public, no-auth remote Model Context Protocol server over Streamable HTTP (JSON-RPC 2.0, stateless, JSON responses rather than SSE). Tools: check_text, check_url, check_image, extract_saved_prompt and read_content_credentials. Connect an MCP client to https://isgenai.com/mcp; this OpenAPI entry documents the HTTP envelope, not each tool's arguments, which clients discover with tools/list.

Operations 3

POST /mcp Send one MCP JSON-RPC 2.0 message (Streamable HTTP) #
GET /mcp Not supported: no server-sent event stream #
DELETE /mcp Not supported: the server is stateless and has no sessions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/isgenai:isgenai-mcp-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

isgenai-mcp-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: isGenAI public checker MCP API
  version: 1.2.0
  description: 'Importable contract for the public evidence checker, saved-prompt extraction/optional reconstruction, C2PA Content Credentials inspection, the public remote MCP endpoint and the health endpoint. Other endpoints documented on /api are outside this contract. Evidence checks and image quality measurements do not establish human authorship. Saved records can be edited; reconstructed prompts describe a similar result and are not recovered originals. A valid C2PA signature and a trusted signer are reported separately. Response schemas: isgenai.check.v1, isgenai.prompt.v1 and isgenai.c2pa-inspection.v1; the MCP endpoint speaks JSON-RPC 2.0.'
  termsOfService: https://isgenai.com/terms
  contact:
    name: isGenAI
    url: https://isgenai.com/contact
servers:
- url: https://isgenai.com
  description: Public production API
security: []
tags:
- name: MCP
  description: 'Public, no-auth remote Model Context Protocol server over Streamable HTTP (JSON-RPC 2.0, stateless, JSON responses rather than SSE). Tools: check_text, check_url, check_image, extract_saved_prompt and read_content_credentials. Connect an MCP client to https://isgenai.com/mcp; this OpenAPI entry documents the HTTP envelope, not each tool''s arguments, which clients discover with tools/list.'
  externalDocs:
    description: isGenAI MCP server documentation
    url: https://isgenai.com/developers/mcp
paths:
  /mcp:
    post:
      operationId: mcpJsonRpc
      tags:
      - MCP
      summary: Send one MCP JSON-RPC 2.0 message (Streamable HTTP)
      description: 'Model Context Protocol Streamable HTTP endpoint in stateless mode: each POST carries a JSON-RPC 2.0 message and requests are answered with a single application/json body (no SSE stream, no Mcp-Session-Id). No authentication. Tools: check_text, check_url, check_image, extract_saved_prompt and read_content_credentials; list them with tools/list. Tool results carry a text summary and structuredContent (isgenai.mcp.check.v1 for checks) naming the source of each finding; they never guarantee authorship. tools/call is limited to 30 calls per minute per client IP. Requests without an Origin header (server-side clients) are accepted; browser origins must be allowlisted (CORS preflight via OPTIONS).'
      externalDocs:
        description: isGenAI MCP server documentation
        url: https://isgenai.com/developers/mcp
      parameters:
      - name: Accept
        in: header
        required: true
        description: Must list both application/json and text/event-stream, per the Streamable HTTP transport.
        schema:
          type: string
          example: application/json, text/event-stream
      - name: MCP-Protocol-Version
        in: header
        required: false
        description: Negotiated protocol version, sent on requests after initialize.
        schema:
          type: string
          example: '2025-11-25'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonRpcMessage'
            examples:
              initialize:
                summary: 'Start: negotiate protocol version and capabilities'
                value:
                  jsonrpc: '2.0'
                  id: 1
                  method: initialize
                  params:
                    protocolVersion: '2025-11-25'
                    capabilities: {}
                    clientInfo:
                      name: example-client
                      version: 1.0.0
              initializedNotification:
                summary: Notification after initialize; answered with HTTP 202
                value:
                  jsonrpc: '2.0'
                  method: notifications/initialized
              callCheckText:
                summary: Call the check_text tool
                value:
                  jsonrpc: '2.0'
                  id: 2
                  method: tools/call
                  params:
                    name: check_text
                    arguments:
                      text: This summary was drafted with ChatGPT and edited by our team.
      responses:
        '200':
          description: JSON-RPC response to a request. Tool failures, including busy shared check capacity, are returned as a result with isError true; protocol errors as a JSON-RPC error object.
          headers:
            Cache-Control:
              schema:
                type: string
                enum:
                - no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcResponse'
              examples:
                initialize:
                  summary: Actual InitializeResult from this implementation (instructions abridged)
                  value:
                    jsonrpc: '2.0'
                    id: 1
                    result:
                      protocolVersion: '2025-11-25'
                      capabilities:
                        tools:
                          listChanged: true
                      serverInfo:
                        name: isgenai
                        title: isGenAI
                        version: 1.0.0
                        websiteUrl: https://isgenai.com
                      instructions: 'isGenAI (https://isgenai.com) is a free checker that reads evidence of AI use stored in files and pages: C2PA Content Credentials, AI labels and AI-use statements, saved prompts and generation settings, EXIF/IPTC/XMP metadata, and matching copies in isGenAI records. Every finding names its source. (abridged: the full instructions list each tool and what results do and do not prove)'
                callCheckText:
                  summary: Actual offline check_text result from this implementation
                  description: Generated locally with optional model calls disabled; check_id and created_at are normalized.
                  value:
                    jsonrpc: '2.0'
                    id: 2
                    result:
                      content:
                      - type: text
                        text: 'isGenAI result: AI DETECTED (Public label)

                          This file or page declares that AI was used. The exact statement is in the findings.

                          - Public label

                          - AI-related wording was found in this copy.

                          Evidence:

                          - AI-related wording was found in this copy. Quote: "This summary was drafted with ChatGPT and edited by our team." [publisher_or_metadata]

                          - This text mentions an AI tool: ChatGPT. Quote: "This summary was drafted with ChatGPT and edited by our team." [public_text]

                          Caveat: The file or page labels this content AI-made. A declaration is a statement, not a signed record.

                          Private check: no public report was created. Method: https://isgenai.com/checker-methodology'
                      structuredContent:
                        schema: isgenai.mcp.check.v1
                        check_id: chk_00000000-0000-4000-8000-000000000000
                        created_at: '2026-10-21T00:00:00.000Z'
                        input_kind: text
                        privacy: private
                        headline: AI DETECTED
                        basis: Public label
                        summary: This file or page declares that AI was used. The exact statement is in the findings.
                        facts:
                        - Public label
                        - AI-related wording was found in this copy.
                        caveat: The file or page labels this content AI-made. A declaration is a statement, not a signed record.
                        verdict:
                          code: ORIGIN_UNRESOLVED
                          label: Origin unresolved
                          confidence: low
                        evidence:
                        - source: publisher_or_metadata
                          mechanism: user_context
                          outcome: detected
                          strength: moderate
                          summary: AI-related wording was found in this copy.
                          snippet: This summary was drafted with ChatGPT and edited by our team.
                        - source: public_text
                          mechanism: ai_tool_mention
                          outcome: detected
                          strength: informational
                          summary: 'This text mentions an AI tool: ChatGPT.'
                          snippet: This summary was drafted with ChatGPT and edited by our team.
                        evidence_count: 2
                        content:
                          sha256: 4d8a236ec59140e53241ed22a5e142a23c4859e605cb8fa7a9fb092b610c0981
                          media_type: text/plain
                          byte_size: 61
                        limitations:
                        - This checks the pasted text or code only. It cannot prove who typed it or what happened before paste.
                        - AI tool names in text or code are clues from the available copy, not proof of authorship.
                        - No evidence does not mean human-made. This does not prove it was human-made.
                        methodology_url: https://isgenai.com/checker-methodology
                toolBusy:
                  summary: Tool failure reported as a result with isError true
                  value:
                    jsonrpc: '2.0'
                    id: 2
                    result:
                      content:
                      - type: text
                        text: 'isGenAI could not complete this request (busy): Checks are busy. Please try again in a few seconds.'
                      structuredContent:
                        schema: isgenai.mcp.error.v1
                        error:
                          code: busy
                          message: Checks are busy. Please try again in a few seconds.
                      isError: true
        '202':
          description: Accepted a JSON-RPC notification or response; no body.
        '400':
          description: The body is not JSON or not a valid JSON-RPC message.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32700
                  message: 'Parse error: send a JSON-RPC 2.0 message.'
                id: null
        '403':
          description: The request's Origin header is not allowed (DNS-rebinding protection). Requests without Origin are accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: 'Forbidden: this Origin may not call the isGenAI MCP server.'
                id: null
        '406':
          description: The Accept header does not list both application/json and text/event-stream.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: 'Not Acceptable: Client must accept both application/json and text/event-stream'
                id: null
        '413':
          description: The request body exceeds the cap (a 20 MiB file as base64 plus the envelope). Pass a public URL instead of base64 for large files.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: Request body is too large. Files are limited to 20 MiB; pass a public URL instead.
                id: null
        '415':
          description: Content-Type is not application/json.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: 'Unsupported Media Type: Content-Type must be application/json'
                id: null
        '429':
          description: More than 30 tools/call messages per minute from this client IP. Respect Retry-After and use a bounded retry policy.
          headers:
            Retry-After:
              description: Seconds to wait before a bounded retry.
              schema:
                type: integer
                minimum: 1
                example: 5
            Cache-Control:
              schema:
                type: string
                enum:
                - no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: Too many tool calls. Try again in 12 seconds.
                id: null
    get:
      operationId: mcpGetNotAllowed
      tags:
      - MCP
      summary: 'Not supported: no server-sent event stream'
      externalDocs:
        description: isGenAI MCP server documentation
        url: https://isgenai.com/developers/mcp
      responses:
        '405':
          description: This stateless server opens no SSE stream and has no session to delete; use POST.
          headers:
            Allow:
              schema:
                type: string
              example: POST, OPTIONS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: Method not allowed. Send JSON-RPC messages with POST to https://isgenai.com/mcp.
                id: null
    delete:
      operationId: mcpDeleteNotAllowed
      tags:
      - MCP
      summary: 'Not supported: the server is stateless and has no sessions'
      externalDocs:
        description: isGenAI MCP server documentation
        url: https://isgenai.com/developers/mcp
      responses:
        '405':
          description: This stateless server opens no SSE stream and has no session to delete; use POST.
          headers:
            Allow:
              schema:
                type: string
              example: POST, OPTIONS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonRpcError'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32000
                  message: Method not allowed. Send JSON-RPC messages with POST to https://isgenai.com/mcp.
                id: null
components:
  schemas:
    JsonRpcId:
      oneOf:
      - type: string
      - type: integer
    JsonRpcMessage:
      description: One JSON-RPC 2.0 request or notification.
      oneOf:
      - $ref: '#/components/schemas/JsonRpcRequest'
      - $ref: '#/components/schemas/JsonRpcNotification'
    JsonRpcError:
      type: object
      required:
      - jsonrpc
      - id
      - error
      description: JSON-RPC 2.0 error. Transport-level errors use id null.
      properties:
        jsonrpc:
          type: string
          enum:
          - '2.0'
        id:
          oneOf:
          - $ref: '#/components/schemas/JsonRpcId'
          - type: 'null'
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: integer
            message:
              type: string
            data: {}
    JsonRpcRequest:
      type: object
      required:
      - jsonrpc
      - id
      - method
      description: JSON-RPC 2.0 request. MCP methods include initialize, ping, tools/list and tools/call.
      properties:
        jsonrpc:
          type: string
          enum:
          - '2.0'
        id:
          $ref: '#/components/schemas/JsonRpcId'
        method:
          type: string
        params:
          type: object
    JsonRpcResponse:
      oneOf:
      - $ref: '#/components/schemas/JsonRpcResult'
      - $ref: '#/components/schemas/JsonRpcError'
    JsonRpcNotification:
      type: object
      required:
      - jsonrpc
      - method
      description: JSON-RPC 2.0 notification (no id), e.g. notifications/initialized. Answered with HTTP 202 and no body.
      properties:
        jsonrpc:
          type: string
          enum:
          - '2.0'
        method:
          type: string
          pattern: ^notifications/
        params:
          type: object
        id:
          not: {}
          description: Notifications carry no id.
    JsonRpcResult:
      type: object
      required:
      - jsonrpc
      - id
      - result
      properties:
        jsonrpc:
          type: string
          enum:
          - '2.0'
        id:
          $ref: '#/components/schemas/JsonRpcId'
        result:
          type: object
          description: Method result, e.g. an MCP InitializeResult or CallToolResult.
externalDocs:
  description: API instructions and interpretation
  url: https://isgenai.com/api
x-mcp:
  endpoint: https://isgenai.com/mcp
  transport: streamable-http
  stateless: true
  authentication: none
  tools:
  - check_text
  - check_url
  - check_image
  - extract_saved_prompt
  - read_content_credentials
  serverCard: https://isgenai.com/.well-known/mcp/server-card.json
  documentation: https://isgenai.com/developers/mcp