> ## Documentation Index
> Fetch the complete documentation index at: https://www.usenotra.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get MCP server analytics

> Usage of your own MCP server, as reported by the `@usenotra/geo` SDK: request and error totals against the previous window, per-tool latency and errors, clients, models, intents, recent failures and tools that were never called. Captured arguments, responses and end-user IDs are not returned.



## OpenAPI

````yaml https://api.usenotra.com/openapi.json get /v1/projects/{projectId}/geo/traffic/mcp
openapi: 3.1.1
info:
  title: Notra API
  version: 1.0.0
  description: >-
    OpenAPI schema for Notra content endpoints. Use GET /v1/status for public
    reachability. Error responses include recovery guidance. Breaking changes
    ship under a new major path; deprecated operations send Deprecation and
    Sunset headers at least 90 days before removal.
servers:
  - url: https://api.usenotra.com
    description: Production
  - url: https://demo-api.usenotra.com
    description: >-
      Sandbox with sample data. Get a free sandbox key at demo.usenotra.com, no
      signup needed
security:
  - BearerAuth: []
tags:
  - name: Webhooks
    description: Manage outbound webhook subscriptions and delivery history.
  - name: Discovery
    description: Public API status and authenticated workspace discovery.
  - name: Content
    description: >-
      Manage posts, brand identities, and GitHub or Linear integrations, and
      queue content generation. Organization is inferred from the API key
      (identity.externalId).
  - name: Schedules
    description: >-
      Manage scheduled content generation. Organization is inferred from the API
      key (identity.externalId).
  - name: Event Triggers
    description: >-
      Manage event-based content generation triggered by GitHub webhooks.
      Organization is inferred from the API key (identity.externalId).
  - name: Chats
    description: >-
      Manage chat sessions. Organization is inferred from the API key
      (identity.externalId).
  - name: Skills
    description: >-
      Manage reusable writing skills. Organization is inferred from the API key
      (identity.externalId).
  - name: Feedback
    description: >-
      Collect and triage feedback submitted by AI agents. Agents post to the
      organization's feedback URL without credentials; reading and triage
      require an API key with feedback.read or feedback.write.
  - name: GEO
    description: >-
      Manage generative engine optimization: projects, tracking settings,
      prompts, prompt sequences, competitors, scans, visibility reads, content
      gaps and briefs, agent readiness and AI traffic. Project-scoped endpoints
      require the GEO plan entitlement in addition to their scope;
      organization-level ingest endpoints require only the traffic scope.
externalDocs:
  description: Notra API versioning and deprecation policy
  url: https://www.usenotra.com/docs/api/versioning
paths:
  /v1/projects/{projectId}/geo/traffic/mcp:
    get:
      tags:
        - GEO
      summary: Get MCP server analytics
      description: >-
        Usage of your own MCP server, as reported by the `@usenotra/geo` SDK:
        request and error totals against the previous window, per-tool latency
        and errors, clients, models, intents, recent failures and tools that
        were never called. Captured arguments, responses and end-user IDs are
        not returned.
      operationId: getGeoMcpAnalytics
      parameters:
        - schema:
            type: string
            minLength: 1
            pattern: ^[A-Za-z0-9_-]{1,100}$
            example: b1f2c3d4-0000-4000-8000-000000000000
          required: true
          name: projectId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 365
            description: Rolling window size in days. Ignored when from/to are set.
          required: false
          description: Rolling window size in days. Ignored when from/to are set.
          name: days
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2026-01-31'
          required: false
          name: from
          in: query
        - schema:
            type: string
            pattern: ^\d{4}-\d{2}-\d{2}$
            example: '2026-01-31'
          required: false
          name: to
          in: query
      responses:
        '200':
          description: MCP analytics fetched successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoMcpAnalyticsResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: GEO plan or available AI credits required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Organization, project or resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Authentication or billing service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    GeoMcpAnalyticsResponse:
      type: object
      properties:
        configured:
          type: boolean
          description: >-
            False when the traffic backend is not configured for this
            deployment; the payload is then empty rather than an error.
        server:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
            version:
              type: string
            protocolVersion:
              type: string
          required:
            - name
            - version
            - protocolVersion
          description: Server info from the newest event. Null before any.
        totals:
          type: object
          properties:
            requests:
              type: integer
            previousRequests:
              type: integer
            toolCalls:
              type: integer
            previousToolCalls:
              type: integer
            errors:
              type: integer
            previousErrors:
              type: integer
            sessions:
              type: integer
            previousSessions:
              type: integer
            users:
              type: integer
            previousUsers:
              type: integer
            p95Ms:
              type: integer
            previousP95Ms:
              type: integer
          required:
            - requests
            - previousRequests
            - toolCalls
            - previousToolCalls
            - errors
            - previousErrors
            - sessions
            - previousSessions
            - users
            - previousUsers
            - p95Ms
            - previousP95Ms
        daily:
          type: array
          items:
            type: object
            properties:
              day:
                type: string
              toolsCall:
                type: integer
              resourcesRead:
                type: integer
              promptsGet:
                type: integer
              other:
                type: integer
              errors:
                type: integer
            required:
              - day
              - toolsCall
              - resourcesRead
              - promptsGet
              - other
              - errors
        tools:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              description:
                type: string
              calls:
                type: integer
              errors:
                type: integer
              users:
                type: integer
              avgResponseBytes:
                type: integer
              p50Ms:
                type: integer
              p95Ms:
                type: integer
              uiResource:
                type: string
            required:
              - name
              - description
              - calls
              - errors
              - users
              - avgResponseBytes
              - p50Ms
              - p95Ms
              - uiResource
        clients:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              sessions:
                type: integer
              requests:
                type: integer
              errors:
                type: integer
              lastSeenAt:
                type: string
            required:
              - name
              - sessions
              - requests
              - errors
              - lastSeenAt
        errorRequests:
          type: array
          items:
            type: object
            properties:
              capturedAt:
                type: string
              clientName:
                type: string
              clientVersion:
                type: string
              method:
                type: string
              target:
                type: string
              status:
                type: string
                enum:
                  - ok
                  - tool_error
                  - rpc_error
              errorCode:
                type: integer
              errorMessage:
                type: string
              durationMs:
                type: integer
              model:
                type: string
            required:
              - capturedAt
              - clientName
              - clientVersion
              - method
              - target
              - status
              - errorCode
              - errorMessage
              - durationMs
              - model
          description: Most recent failed requests, newest first.
        models:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              sessions:
                type: integer
              calls:
                type: integer
              errors:
                type: integer
            required:
              - name
              - sessions
              - calls
              - errors
        intents:
          type: array
          items:
            type: object
            properties:
              intent:
                type: string
              tool:
                type: string
              calls:
                type: integer
              errors:
                type: integer
            required:
              - intent
              - tool
              - calls
              - errors
        elicitations:
          type: array
          items:
            type: object
            properties:
              method:
                type: string
              tool:
                type: string
              requests:
                type: integer
              accepted:
                type: integer
              declined:
                type: integer
              cancelled:
                type: integer
              errors:
                type: integer
            required:
              - method
              - tool
              - requests
              - accepted
              - declined
              - cancelled
              - errors
        uiRenders:
          type: array
          items:
            type: object
            properties:
              resource:
                type: string
              tools:
                type: array
                items:
                  type: string
              renders:
                type: integer
              sessions:
                type: integer
              errors:
                type: integer
            required:
              - resource
              - tools
              - renders
              - sessions
              - errors
        catalog:
          type:
            - object
            - 'null'
          properties:
            listedAt:
              type: string
            unusedTools:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  description:
                    type: string
                required:
                  - name
                  - description
          required:
            - listedAt
            - unusedTools
          description: >-
            Tools from the latest tools/list that were never called in the
            window. Null before a listing is seen.
        organization:
          type: object
          properties:
            id:
              type: string
            slug:
              type: string
            name:
              type: string
            logo:
              type:
                - string
                - 'null'
          required:
            - id
            - slug
            - name
            - logo
      required:
        - configured
        - server
        - totals
        - daily
        - tools
        - clients
        - errorRequests
        - models
        - intents
        - elicitations
        - uiRenders
        - catalog
        - organization
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
        recovery:
          type: string
      required:
        - error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Send your API key in the Authorization header as Bearer API_KEY. Account
        API keys work in every workspace you belong to: send
        X-Notra-Organization-Id with the workspace id or slug to choose one.
        Workspace endpoints require it when you belong to more than one
        workspace; GET /v1/me/workspaces works without it. Organization keys
        only accept their own workspace there.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.