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

# Unregister Mcp Tool



## OpenAPI

````yaml /api-reference/openapi.json delete /api/runtime-security/apps/{app_uuid}/mcp/tools/{tool_name}
openapi: 3.1.0
info:
  title: Blindsight API
  version: 0.1.0
  description: >-
    The full Blindsight REST surface, generated from the running application.
    Replace the server host with your own deployment.


    For the Runtime Security integration surface (scan, proxy, tool calls) see
    the Runtime Security spec, which is hand written and carries worked
    examples.
servers:
  - url: https://api.your-blindsight.com
    description: Your Blindsight deployment
security: []
paths:
  /api/runtime-security/apps/{app_uuid}/mcp/tools/{tool_name}:
    delete:
      tags:
        - runtime-security-apps
      summary: Unregister Mcp Tool
      operationId: >-
        unregister_mcp_tool_api_runtime_security_apps__app_uuid__mcp_tools__tool_name__delete
      parameters:
        - name: app_uuid
          in: path
          required: true
          schema:
            type: string
            title: App Uuid
        - name: tool_name
          in: path
          required: true
          schema:
            type: string
            title: Tool Name
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppConfigVersionRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    AppConfigVersionRead:
      properties:
        id:
          type: string
          title: Id
        version_number:
          type: integer
          title: Version Number
        config:
          $ref: '#/components/schemas/AppConfig-Output'
        change_summary:
          anyOf:
            - type: string
            - type: 'null'
          title: Change Summary
        created_at:
          type: string
          format: date-time
          title: Created At
        created_by_user_id:
          anyOf:
            - type: integer
            - type: 'null'
          title: Created By User Id
      type: object
      required:
        - id
        - version_number
        - config
        - created_at
      title: AppConfigVersionRead
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AppConfig-Output:
      properties:
        thresholds:
          $ref: '#/components/schemas/AppThresholds'
        detectors:
          $ref: '#/components/schemas/AppDetectors'
        ner:
          $ref: '#/components/schemas/AppNerPolicy'
        custom_phrases:
          items:
            type: string
          type: array
          title: Custom Phrases
        pii_rules:
          items:
            $ref: '#/components/schemas/AppPiiRule'
          type: array
          title: Pii Rules
        tool_policy:
          $ref: '#/components/schemas/AppToolPolicy'
        routing:
          $ref: '#/components/schemas/AppRouting'
        streaming:
          $ref: '#/components/schemas/AppStreamingPolicy'
        egress:
          $ref: '#/components/schemas/AppEgressPolicy'
        canaries:
          $ref: '#/components/schemas/AppCanaryPolicy'
        redaction:
          $ref: '#/components/schemas/AppRedactionPolicy'
        request_signing:
          $ref: '#/components/schemas/AppRequestSigningPolicy'
        mcp:
          $ref: '#/components/schemas/AppMcpPolicy-Output'
      additionalProperties: false
      type: object
      title: AppConfig
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    AppThresholds:
      properties:
        block:
          type: number
          maximum: 1
          minimum: 0
          title: Block
          default: 0.55
        redact:
          type: number
          maximum: 1
          minimum: 0
          title: Redact
          default: 0.35
        output_block:
          type: number
          maximum: 1
          minimum: 0
          title: Output Block
          default: 0.55
        output_redact:
          type: number
          maximum: 1
          minimum: 0
          title: Output Redact
          default: 0.35
      type: object
      title: AppThresholds
      description: >-
        Defaults for a NEW app. Existing apps keep their stored values.


        0.55/0.35 rather than 0.85/0.55: measured on 5,514 rows, moving the
        block

        line alone takes attack detection from 0.767 to 0.901 and benign pass
        from

        0.937 to 0.919. See DEFAULT_BLOCK_THRESHOLD in the engine for the split

        validation behind the number.
    AppDetectors:
      properties:
        injection:
          type: boolean
          title: Injection
          default: true
        pii:
          type: boolean
          title: Pii
          default: true
        ner:
          type: boolean
          title: Ner
          default: true
        embedding_anomaly:
          type: boolean
          title: Embedding Anomaly
          default: false
        perplexity:
          type: boolean
          title: Perplexity
          default: false
        harm:
          type: boolean
          title: Harm
          default: true
        topic_drift:
          type: boolean
          title: Topic Drift
          default: false
        agentic_guardrails:
          type: boolean
          title: Agentic Guardrails
          default: true
      type: object
      title: AppDetectors
    AppNerPolicy:
      properties:
        mode:
          anyOf:
            - type: string
              enum:
                - flag
                - redact
            - type: 'null'
          title: Mode
          description: >-
            Unset follows the platform default. 'flag' = record findings and
            mark the event suspicious without rewriting text; 'redact' = mask
            NER spans exactly like regex PII hits.
        threshold:
          type: number
          maximum: 0.99
          minimum: 0.05
          title: Threshold
          default: 0.55
        entities:
          items:
            type: string
          type: array
          maxItems: 64
          title: Entities
      type: object
      title: AppNerPolicy
      description: |-
        Zero-shot NER for unstructured PII.

        Enablement lives in ``detectors.ner`` like every other detector; this
        block only tunes it. Entities are free-form zero-shot labels, adding
        one requires no retrain.
    AppPiiRule:
      properties:
        name:
          type: string
          maxLength: 128
          minLength: 1
          title: Name
        pattern:
          type: string
          maxLength: 2048
          minLength: 1
          title: Pattern
        category:
          type: string
          maxLength: 64
          minLength: 1
          title: Category
          default: custom
        score:
          type: number
          maximum: 1
          minimum: 0
          title: Score
          default: 0.7
        description:
          anyOf:
            - type: string
              maxLength: 512
            - type: 'null'
          title: Description
        flags:
          type: integer
          maximum: 258
          minimum: 0
          title: Flags
          default: 0
        priority:
          type: integer
          title: Priority
          default: 0
      type: object
      required:
        - name
        - pattern
      title: AppPiiRule
    AppToolPolicy:
      properties:
        allowlist:
          items:
            type: string
          type: array
          title: Allowlist
        denylist:
          items:
            type: string
          type: array
          title: Denylist
      type: object
      title: AppToolPolicy
    AppRouting:
      properties:
        forbidden_providers:
          items:
            type: string
          type: array
          title: Forbidden Providers
        provider:
          anyOf:
            - type: string
              maxLength: 64
            - type: 'null'
          title: Provider
          description: >-
            Bound LLM provider slug for the OpenAI-compatible proxy (e.g.
            'groq', 'mistral', 'openrouter'). When set, the /openai-compatible/*
            routes route to this provider by default.
        upstream_base_url:
          anyOf:
            - type: string
              maxLength: 512
            - type: 'null'
          title: Upstream Base Url
          description: >-
            Explicit upstream base URL for the OpenAI-compatible proxy. Must be
            an https URL allowlisted by the deployment. Takes precedence over
            'provider' when both are set.
      type: object
      title: AppRouting
    AppStreamingPolicy:
      properties:
        strict:
          type: boolean
          title: Strict
          description: >-
            When true, every upstream chunk is scanned BEFORE being flushed to
            the client. Trades TTFB for correctness, closes the gap where small
            PII/injection payloads escape the inter-scan window.
          default: false
        attachment_notice_enabled:
          type: boolean
          title: Attachment Notice Enabled
          description: >-
            If a request contains an attachment (file, image, document part),
            inject a short 'analyzing file' notice into streaming responses or
            set X-Blindsight-Scan-* headers on non-streaming responses.
          default: true
        attachment_notice_message:
          type: string
          maxLength: 280
          title: Attachment Notice Message
          description: >-
            Notice text shown inline to the end user when a streaming request
            contains an attachment. Ignored when attachment_notice_enabled is
            False.
          default: '🔒 Blindsight: analyzing attached file for security risks…'
      type: object
      title: AppStreamingPolicy
      description: Per-app streaming behaviour for the proxy.
    AppEgressPolicy:
      properties:
        host_allowlist:
          items:
            type: string
          type: array
          title: Host Allowlist
          description: >-
            Hostnames (exact or *.suffix) the proxy is allowed to call for this
            app. Empty = inherit deployment allowlist. Always checked AFTER
            deployment allowlist.
      type: object
      title: AppEgressPolicy
      description: Per-app egress controls layered on top of the deployment defaults.
    AppCanaryPolicy:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        phrases:
          items:
            type: string
          type: array
          maxItems: 8
          title: Phrases
      type: object
      title: AppCanaryPolicy
      description: |-
        Adversarial canary phrases planted in the system prompt.

        If the model ever echoes one in its output, the response is blocked ,
        this catches jailbreaks the classifier missed.
    AppRedactionPolicy:
      properties:
        style:
          type: string
          enum:
            - bracket
            - typed_token
          title: Style
          description: >-
            'bracket' = <EMAIL>, <PHONE> ... ; 'typed_token' = <EMAIL_0>,
            <PHONE_1> ... (stable per response, parser-friendly for JSON / code
            outputs).
          default: bracket
      type: object
      title: AppRedactionPolicy
      description: How PII spans are rewritten in the redacted_text field.
    AppRequestSigningPolicy:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        timestamp_skew_seconds:
          type: integer
          maximum: 3600
          minimum: 30
          title: Timestamp Skew Seconds
          default: 300
      type: object
      title: AppRequestSigningPolicy
      description: HMAC-signed proxy requests with nonce replay protection.
    AppMcpPolicy-Output:
      properties:
        min_trust_score:
          type: number
          maximum: 1
          minimum: 0
          title: Min Trust Score
          default: 0.4
        tools:
          items:
            $ref: '#/components/schemas/McpToolEntry-Output'
          type: array
          maxItems: 200
          title: Tools
        enforcement:
          type: string
          enum:
            - advisory
            - block_high
          title: Enforcement
          default: block_high
        pin_on_first_use:
          type: boolean
          title: Pin On First Use
          default: true
        scan_results:
          type: boolean
          title: Scan Results
          default: true
      type: object
      title: AppMcpPolicy
      description: MCP tool registry, trust gate, and live verification policy.
    McpToolEntry-Output:
      properties:
        name:
          type: string
          maxLength: 128
          minLength: 1
          title: Name
        description:
          type: string
          maxLength: 8192
          title: Description
          default: ''
        trust_score:
          type: number
          maximum: 1
          minimum: 0
          title: Trust Score
          default: 0
        severity_top:
          type: string
          enum:
            - none
            - low
            - medium
            - high
          title: Severity Top
          default: none
        findings_count:
          type: integer
          minimum: 0
          title: Findings Count
          default: 0
        registered_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Registered At
        last_scanned_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Scanned At
      type: object
      required:
        - name
      title: McpToolEntry
      description: A single MCP tool registered with this app, with its trust score.

````