{"openapi":"3.1.0","info":{"title":"Comet (BYOK) API","version":"0.1.0","description":"Comet (BYOK) lets an AI assistant read your own Comet data through the Comet API with a key you supply (Comet API key). Read-only: 12 tools (list_workspaces, list_projects, get_project, list_project_columns, list_experiments, get_experiment_metadata, get_metrics_summary, get_parameters, get_experiment_tags, get_metric_values, get_system_details, list_registry_models). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-comet.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-comet/docs"},"termsOfService":"https://connectorbay.com/byok-comet/terms"},"servers":[{"url":"https://byok-comet.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-comet/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_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the workspace names the key's account can use. Use for \"Which Comet workspaces do I belong to\".","description":"List the workspace names the key's account can use. Use for \"Which Comet workspaces do I belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_workspacesArguments","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_projects":{"post":{"operationId":"list_projects","summary":"List a workspace's projects with owner, description, public flag, experiment count and last update. Use for \"Which proje","description":"List a workspace's projects with owner, description, public flag, experiment count and last update. Use for \"Which projects are in my Comet workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_name":{"description":"Comet workspace name, as returned by list_workspaces.","maxLength":100,"title":"Workspace Name","type":"string"}},"required":["workspace_name"],"title":"list_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one project's details by project id. Use for \"Show the Comet project aProjectId\".","description":"Get one project's details by project id. Use for \"Show the Comet project aProjectId\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id as returned by list_projects.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_projectArguments","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_project_columns":{"post":{"operationId":"list_project_columns","summary":"List the columns of a project (metric, parameter, tag and metadata names) that can be used in project queries. Use for \"","description":"List the columns of a project (metric, parameter, tag and metadata names) that can be used in project queries. Use for \"What metrics and parameters are logged in Comet project aProjectId\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id as returned by list_projects.","maxLength":200,"title":"Project Id","type":"string"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to read the columns of archived experiments.","title":"Archived"}},"required":["project_id"],"title":"list_project_columnsArguments","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_experiments":{"post":{"operationId":"list_experiments","summary":"List a project's experiments with key, name, start and end time and duration. Archived experiments only when asked. Use ","description":"List a project's experiments with key, name, start and end time and duration. Archived experiments only when asked. Use for \"Which experiments ran in Comet project aProjectId\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id as returned by list_projects.","maxLength":200,"title":"Project Id","type":"string"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list archived experiments.","title":"Archived"}},"required":["project_id"],"title":"list_experimentsArguments","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_experiment_metadata":{"post":{"operationId":"get_experiment_metadata","summary":"Get an experiment's name, project, workspace, start and end time and duration. Use for \"When did Comet experiment 3f9a1c","description":"Get an experiment's name, project, workspace, start and end time and duration. Use for \"When did Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experiment_key":{"description":"Experiment key (the id of a run), as returned by list_experiments.","maxLength":100,"title":"Experiment Key","type":"string"}},"required":["experiment_key"],"title":"get_experiment_metadataArguments","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_metrics_summary":{"post":{"operationId":"get_metrics_summary","summary":"Get an experiment's metrics summary: current, minimum and maximum value of each logged metric with the step it came from","description":"Get an experiment's metrics summary: current, minimum and maximum value of each logged metric with the step it came from. Use for \"What were the final loss and accuracy of Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experiment_key":{"description":"Experiment key (the id of a run), as returned by list_experiments.","maxLength":100,"title":"Experiment Key","type":"string"}},"required":["experiment_key"],"title":"get_metrics_summaryArguments","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_parameters":{"post":{"operationId":"get_parameters","summary":"Get an experiment's logged parameters (hyperparameters) with their current value. Use for \"Which hyperparameters did Com","description":"Get an experiment's logged parameters (hyperparameters) with their current value. Use for \"Which hyperparameters did Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experiment_key":{"description":"Experiment key (the id of a run), as returned by list_experiments.","maxLength":100,"title":"Experiment Key","type":"string"}},"required":["experiment_key"],"title":"get_parametersArguments","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_experiment_tags":{"post":{"operationId":"get_experiment_tags","summary":"Get the tags of an experiment. Use for \"What tags does Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e have\".","description":"Get the tags of an experiment. Use for \"What tags does Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experiment_key":{"description":"Experiment key (the id of a run), as returned by list_experiments.","maxLength":100,"title":"Experiment Key","type":"string"}},"required":["experiment_key"],"title":"get_experiment_tagsArguments","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_metric_values":{"post":{"operationId":"get_metric_values","summary":"Get all recorded values of one metric of an experiment with step, epoch and timestamp. Only the first 50 values are show","description":"Get all recorded values of one metric of an experiment with step, epoch and timestamp. Only the first 50 values are shown. Use for \"Show the loss curve of Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experiment_key":{"description":"Experiment key (the id of a run), as returned by list_experiments.","maxLength":100,"title":"Experiment Key","type":"string"},"metric_name":{"description":"Metric name, for example loss.","maxLength":200,"title":"Metric Name","type":"string"}},"required":["experiment_key","metric_name"],"title":"get_metric_valuesArguments","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_system_details":{"post":{"operationId":"get_system_details","summary":"Get the machine an experiment ran on: user, OS, Python version, hostname, GPUs, maximum memory and command. Use for \"Wha","description":"Get the machine an experiment ran on: user, OS, Python version, hostname, GPUs, maximum memory and command. Use for \"What hardware did Comet experiment 3f9a1c2d4e5b4a6f8c7d9e0a1b2c3d4e run on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"experiment_key":{"description":"Experiment key (the id of a run), as returned by list_experiments.","maxLength":100,"title":"Experiment Key","type":"string"}},"required":["experiment_key"],"title":"get_system_detailsArguments","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_registry_models":{"post":{"operationId":"list_registry_models","summary":"List a workspace's model registry entries with description, owner, latest version, stages and last update. Use for \"Whic","description":"List a workspace's model registry entries with description, owner, latest version, stages and last update. Use for \"Which models are in my Comet model registry and which are in production\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workspace_name":{"description":"Comet workspace name, as returned by list_workspaces.","maxLength":100,"title":"Workspace Name","type":"string"}},"required":["workspace_name"],"title":"list_registry_modelsArguments","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}}}}