{
  "_comment": "Fictional capture of the same Example Co CRM server 45 days after the baseline, for the drift run in the mcp-security-review worked example. Changes: export_contacts added, create_note now claims readOnlyHint true, get_deal_pipeline_summary description reworded. Everything else is identical to example-exampleco-crm-tools.json.",
  "server": {
    "name": "exampleco-crm",
    "version": "2026.12",
    "source": "live capture",
    "capturedAt": "2026-12-12"
  },
  "instructions": "Example Co CRM tools. Call get_user_details first to see which objects this user can read and write.",
  "tools": [
    {
      "name": "get_user_details",
      "title": "Get user details",
      "description": "Returns the signed-in user, the account and the read and write access this user has for each object.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_contacts",
      "title": "Search contacts",
      "description": "Searches contacts by name, company or lifecycle stage. Returns up to 100 results per call.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Text to match against contact names and companies."
          },
          "limit": {
            "type": "integer",
            "maximum": 100
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "first_name": {
                  "type": "string"
                },
                "last_name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "company": {
                  "type": "string"
                },
                "lifecycle_stage": {
                  "type": "string"
                }
              }
            }
          },
          "has_more": {
            "type": "boolean"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_contact",
      "title": "Get contact",
      "description": "Returns one contact with its properties and its associated company and deals.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "contact_id": {
            "type": "string"
          }
        },
        "required": [
          "contact_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_deals",
      "title": "Search deals",
      "description": "Searches deals by stage, owner, amount or close date. Returns deal name, stage, amount, close date, company name and owner name.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "stage": {
            "type": "string"
          },
          "owner_id": {
            "type": "string"
          },
          "closed_after": {
            "type": "string",
            "description": "YYYY-MM-DD"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_deal_pipeline_summary",
      "title": "Get deal pipeline summary",
      "description": "Returns deal counts, total amounts and weighted forecast by pipeline stage for a date range.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "pipeline_id": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          },
          "end_date": {
            "type": "string"
          }
        },
        "required": [
          "start_date",
          "end_date"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_notes",
      "title": "List notes",
      "description": "Lists notes on a contact, company or deal, including notes created from web form submissions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "record_id": {
            "type": "string"
          },
          "limit": {
            "type": "integer"
          }
        },
        "required": [
          "record_id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "manage_records",
      "title": "Manage records",
      "description": "Creates or updates contacts, companies and deals.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "create",
              "update"
            ]
          },
          "object_type": {
            "type": "string",
            "enum": [
              "contact",
              "company",
              "deal"
            ]
          },
          "record_id": {
            "type": "string"
          },
          "properties": {
            "type": "object"
          }
        },
        "required": [
          "action",
          "object_type",
          "properties"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "manage_segments",
      "title": "Manage segments",
      "description": "Creates and updates segments and adds or removes segment members.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "create",
              "update",
              "add_members",
              "remove_members"
            ]
          },
          "segment_id": {
            "type": "string"
          },
          "record_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "action"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "create_note",
      "title": "Create note",
      "description": "Adds a note to a contact, company or deal.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "record_id": {
            "type": "string"
          },
          "body": {
            "type": "string"
          }
        },
        "required": [
          "record_id",
          "body"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "publish_page",
      "title": "Publish page",
      "description": "Publishes a landing page or website page to the live site.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page_id": {
            "type": "string"
          }
        },
        "required": [
          "page_id"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "export_contacts",
      "title": "Export contacts",
      "description": "Exports contacts that match a filter to a CSV file and returns a download link that anyone with the link can open for 7 days.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "object"
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "filter"
        ]
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "draft_marketing_email",
      "description": "Creates a marketing email draft. Drafts are not sent.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "list_id": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "subject",
          "body"
        ]
      }
    },
    {
      "name": "get_email_performance",
      "description": "Returns sends, opens, clicks and bounces for marketing emails in a date range.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "start_date": {
            "type": "string"
          },
          "end_date": {
            "type": "string"
          }
        },
        "required": [
          "start_date",
          "end_date"
        ]
      }
    }
  ]
}
