{"openapi":"3.1.0","info":{"title":"Cisco Meraki (BYOK) API","version":"0.1.0","description":"Cisco Meraki (BYOK) lets an AI assistant read your own Cisco Meraki data through the Cisco Meraki API with a key you supply (Meraki Dashboard API key (Organization > API & Webhooks)). Read-only: 12 tools (list_organizations, list_networks, list_organization_devices, list_device_statuses, get_device_status_overview, list_network_devices, get_device, list_network_clients, list_network_events,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-meraki.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-meraki/docs"},"termsOfService":"https://connectorbay.com/byok-meraki/terms"},"servers":[{"url":"https://byok-meraki.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-meraki/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_organizations":{"post":{"operationId":"list_organizations","summary":"List the Meraki organizations the key can access with id, name, dashboard URL, licensing model and cloud region. Use for","description":"List the Meraki organizations the key can access with id, name, dashboard URL, licensing model and cloud region. Use for \"Which Meraki organizations can my API key see\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":9000,"minimum":3,"type":"integer"},{"type":"null"}],"default":100,"description":"How many entries to return, 3 to 9000. The first page only is returned.","title":"Per Page"}},"title":"list_organizationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_networks":{"post":{"operationId":"list_networks","summary":"List the networks of an organization with name, product types, time zone, tags and dashboard URL. Use for \"What Meraki n","description":"List the networks of an organization with name, product types, time zone, tags and dashboard URL. Use for \"What Meraki networks does organization 549236 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"},"per_page":{"anyOf":[{"maximum":100000,"minimum":3,"type":"integer"},{"type":"null"}],"default":100,"description":"How many entries to return, 3 to 100000. The first page only is returned.","title":"Per Page"}},"required":["organization_id"],"title":"list_networksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_organization_devices":{"post":{"operationId":"list_organization_devices","summary":"List the devices assigned to networks in an organization with name, serial, model, MAC, LAN IP, firmware and tags. Optio","description":"List the devices assigned to networks in an organization with name, serial, model, MAC, LAN IP, firmware and tags. Optional filters match part of the name, model, serial or MAC. Use for \"Which Meraki access points and switches are in my organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"},"per_page":{"anyOf":[{"maximum":5000,"minimum":3,"type":"integer"},{"type":"null"}],"default":100,"description":"How many entries to return, 3 to 5000. The first page only is returned.","title":"Per Page"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices whose name contains this text.","title":"Name"},"model":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices whose model contains this text, for example 'MR46'.","title":"Model"},"serial":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices whose serial number contains this text.","title":"Serial"},"mac":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only devices whose MAC address contains this text.","title":"Mac"}},"required":["organization_id"],"title":"list_organization_devicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_device_statuses":{"post":{"operationId":"list_device_statuses","summary":"List the current status (online, alerting, offline or dormant) of every device in an organization with last report time,","description":"List the current status (online, alerting, offline or dormant) of every device in an organization with last report time, public and LAN IP, model and tags. Use for \"Which Meraki devices are offline right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"},"per_page":{"anyOf":[{"maximum":1000,"minimum":3,"type":"integer"},{"type":"null"}],"default":200,"description":"How many entries to return, 3 to 1000. The first page only is returned.","title":"Per Page"}},"required":["organization_id"],"title":"list_device_statusesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_device_status_overview":{"post":{"operationId":"get_device_status_overview","summary":"Count the devices of an organization by status: online, alerting, offline and dormant. Use for \"How many of my Meraki de","description":"Count the devices of an organization by status: online, alerting, offline and dormant. Use for \"How many of my Meraki devices are online versus offline\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"}},"required":["organization_id"],"title":"get_device_status_overviewArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_network_devices":{"post":{"operationId":"list_network_devices","summary":"List the devices in one network with name, serial, model, MAC, LAN IP, firmware, address and tags. Use for \"What devices","description":"List the devices in one network with name, serial, model, MAC, LAN IP, firmware, address and tags. Use for \"What devices are in Meraki network L_646829496481105433\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_id":{"description":"Network id from list_networks, for example 'L_646829496481105433'.","maxLength":60,"title":"Network Id","type":"string"}},"required":["network_id"],"title":"list_network_devicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_device":{"post":{"operationId":"get_device","summary":"Get one Meraki device by serial number: name, model, MAC, LAN IP, firmware, network, address, notes, tags and coordinate","description":"Get one Meraki device by serial number: name, model, MAC, LAN IP, firmware, network, address, notes, tags and coordinates. Use for \"Show details of the Meraki device with serial Q2XX-XXXX-XXXX\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"serial":{"description":"Device serial number from a device list, for example 'Q2XX-XXXX-XXXX'.","maxLength":40,"title":"Serial","type":"string"}},"required":["serial"],"title":"get_deviceArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_network_clients":{"post":{"operationId":"list_network_clients","summary":"List clients seen on a network in a time span (up to 31 days) with MAC, IP, description, OS, VLAN, SSID or switch port, ","description":"List clients seen on a network in a time span (up to 31 days) with MAC, IP, description, OS, VLAN, SSID or switch port, status and data usage (sent and received). Optional partial-match filters. Use for \"Which clients connected to my Meraki network in the last day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_id":{"description":"Network id from list_networks, for example 'L_646829496481105433'.","maxLength":60,"title":"Network Id","type":"string"},"timespan":{"anyOf":[{"maximum":2678400,"minimum":1,"type":"number"},{"type":"null"}],"default":86400,"description":"Seconds to look back, up to 2678400 (31 days). Default one day.","title":"Timespan"},"per_page":{"anyOf":[{"maximum":5000,"minimum":3,"type":"integer"},{"type":"null"}],"default":50,"description":"How many entries to return, 3 to 5000. The first page only is returned.","title":"Per Page"},"ip":{"anyOf":[{"maxLength":45,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients whose IP address contains this text.","title":"Ip"},"mac":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients whose MAC address contains this text.","title":"Mac"},"os":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients whose operating system contains this text.","title":"Os"},"description":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients whose description contains this text.","title":"Description"},"vlan":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only clients on exactly this VLAN.","title":"Vlan"}},"required":["network_id"],"title":"list_network_clientsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_network_events":{"post":{"operationId":"list_network_events","summary":"List recent events of a network (client connections, device changes, VPN and firewall events) with time, type, descripti","description":"List recent events of a network (client connections, device changes, VPN and firewall events) with time, type, description, device and client. Networks with several product types need product_type. Use for \"What recent events happened on my Meraki network\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network_id":{"description":"Network id from list_networks, for example 'L_646829496481105433'.","maxLength":60,"title":"Network Id","type":"string"},"product_type":{"anyOf":[{"enum":["appliance","camera","campusGateway","cellularGateway","secureConnect","switch","systemsManager","wireless","wirelessController"],"type":"string"},{"type":"null"}],"default":null,"description":"Product type to read events for: appliance, camera, cellularGateway, switch, wireless, systemsManager and others. Required when the network has several product types.","title":"Product Type"},"device_serial":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of the device with this serial number.","title":"Device Serial"},"per_page":{"anyOf":[{"maximum":1000,"minimum":3,"type":"integer"},{"type":"null"}],"default":50,"description":"How many entries to return, 3 to 1000. The first page only is returned.","title":"Per Page"}},"required":["network_id"],"title":"list_network_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_license_overview":{"post":{"operationId":"get_license_overview","summary":"Show the license state of an organization: status, expiration date, license count and how many licenses are active, expi","description":"Show the license state of an organization: status, expiration date, license count and how many licenses are active, expiring or expired. Use for \"When do my Meraki licenses expire\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"}},"required":["organization_id"],"title":"get_license_overviewArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_organization_admins":{"post":{"operationId":"list_organization_admins","summary":"List the dashboard administrators of an organization with name, email, access level, account status, two-factor and API ","description":"List the dashboard administrators of an organization with name, email, access level, account status, two-factor and API key flags and last activity. Use for \"Who are the Meraki dashboard admins and do they use two-factor login\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"}},"required":["organization_id"],"title":"list_organization_adminsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_inventory_devices":{"post":{"operationId":"list_inventory_devices","summary":"List the device inventory of an organization, including unclaimed-to-network devices, with serial, model, order number, ","description":"List the device inventory of an organization, including unclaimed-to-network devices, with serial, model, order number, claim date, license expiry and end-of-life status. Use for \"Which Meraki devices in my inventory are not used in any network\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_id":{"description":"Organization id from list_organizations, for example '549236'.","maxLength":40,"title":"Organization Id","type":"string"},"used_state":{"anyOf":[{"enum":["used","unused"],"type":"string"},{"type":"null"}],"default":null,"description":"Only inventory that is used or unused in a network.","title":"Used State"},"search":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Text to match against serial number, MAC address or model.","title":"Search"},"per_page":{"anyOf":[{"maximum":1000,"minimum":3,"type":"integer"},{"type":"null"}],"default":100,"description":"How many entries to return, 3 to 1000. The first page only is returned.","title":"Per Page"}},"required":["organization_id"],"title":"list_inventory_devicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}