Sentry logo

Sentry

Community
JustVugg
sentry

sentry should become a local, searchable operational workspace, not only an endpoint wrapper. Use for 209 operation/source entries against https://{region}.sentry.io.

Overview

PublisherJustVugg
Repositorytools-factory
Skill namesentry
Stars
62
Forks
7
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by JustVugg on GitHub. Read the source before you install it.

Installation

Install the Sentry AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/JustVugg/tools-factory/tree/main/library/tools/sentry/skills/sentry
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/JustVugg/tools-factory.git /tmp/tools-factory
mkdir -p .claude/skills
cp -r /tmp/tools-factory/library/tools/sentry/skills/sentry .claude/skills/sentry
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Sentry in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Sentry on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Sentry is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

sentry

Generated by Gutenberg. Use this skill to call the sentry API through the local sentry CLI.

When to use

  • The user asks for data exposed by sentry (Alerts, Crons, Dashboards, Discover, Environments, Events).
  • An agent task needs structured JSON from https://{region}.sentry.io.
  • You need to perform a write/destructive operation on sentry — always preview first, run with --yes only on explicit user confirmation.

How to invoke

The skill assumes the generated CLI is on PATH (or invoke via scripts/use-go.sh run ./cmd/sentry from the project directory).

bash
sentry operations
sentry call List Your Organizations --json
sentry sync --json
sentry search "<keyword>" --json

Preview a write operation (default behavior, no side effects):

bash
sentry call Update an Organization --data '{"example":true}' --json

Execute it (only after explicit user confirmation):

bash
sentry call Update an Organization --data '{"example":true}' --yes --json

Authentication

Set SENTRY_API_KEY in the environment, or pass --api-key <key>.

Operations index

  • List Your Organizations (GET /api/0/organizations/) — read — Return a list of organizations available to the authenticated session in a region. This is particularly useful for requests with a user bound context. For API key-based requests this will only return the organization that belongs to the key.
  • Retrieve an Organization (GET /api/0/organizations/{organization_id_or_slug}/) — read — Return details on an individual organization, including various details such as membership access and teams.
  • Update an Organization (PUT /api/0/organizations/{organization_id_or_slug}/) — write — Update various attributes and configurable settings for the given organization.
  • Get Integration Provider Information (GET /api/0/organizations/{organization_id_or_slug}/config/integrations/) — read — Get integration provider information about all available integrations for an organization.
  • List an Organization's Custom Dashboards (GET /api/0/organizations/{organization_id_or_slug}/dashboards/) — read — Retrieve a list of custom dashboards that are associated with the given organization.
  • Create a New Dashboard for an Organization (POST /api/0/organizations/{organization_id_or_slug}/dashboards/) — write — Create a new dashboard for the given Organization
  • Retrieve an Organization's Custom Dashboard (GET /api/0/organizations/{organization_id_or_slug}/dashboards/{dashboard_id}/) — read — Return details about an organization's custom dashboard.
  • Edit an Organization's Custom Dashboard (PUT /api/0/organizations/{organization_id_or_slug}/dashboards/{dashboard_id}/) — write — Edit an organization's custom dashboard as well as any bulk edits on widgets that may have been made. (For example, widgets that have been rearranged, updated queries and fields, specific display types, and so on.)
  • Delete an Organization's Custom Dashboard (DELETE /api/0/organizations/{organization_id_or_slug}/dashboards/{dashboard_id}/) — destructive — Delete an organization's custom dashboard.
  • Fetch an Organization's Monitors (GET /api/0/organizations/{organization_id_or_slug}/detectors/) — read — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.

List an Organization's Monitors

  • Mutate an Organization's Monitors (PUT /api/0/organizations/{organization_id_or_slug}/detectors/) — write — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.

Bulk enable or disable an Organization's Monitors

  • Bulk Delete Monitors (DELETE /api/0/organizations/{organization_id_or_slug}/detectors/) — destructive — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.

Bulk delete Monitors for a given organization

  • Fetch a Monitor (GET /api/0/organizations/{organization_id_or_slug}/detectors/{detector_id}/) — read — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.

Return details on an individual monitor

  • Update a Monitor by ID (PUT /api/0/organizations/{organization_id_or_slug}/detectors/{detector_id}/) — write — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.

Update an existing monitor

  • Delete a Monitor (DELETE /api/0/organizations/{organization_id_or_slug}/detectors/{detector_id}/) — destructive — ⚠️ This endpoint is currently in beta and may be subject to change. It is supported by New Monitors and Alerts and may not be viewable in the UI today.

Delete a monitor

  • List an Organization's Discover Saved Queries (GET /api/0/organizations/{organization_id_or_slug}/discover/saved/) — read — Retrieve a list of saved queries that are associated with the given organization.
  • Create a New Saved Query (POST /api/0/organizations/{organization_id_or_slug}/discover/saved/) — write — Create a new saved query for the given organization.
  • Retrieve an Organization's Discover Saved Query (GET /api/0/organizations/{organization_id_or_slug}/discover/saved/{query_id}/) — read — Retrieve a saved query.
  • Edit an Organization's Discover Saved Query (PUT /api/0/organizations/{organization_id_or_slug}/discover/saved/{query_id}/) — write — Modify a saved query.
  • Delete an Organization's Discover Saved Query (DELETE /api/0/organizations/{organization_id_or_slug}/discover/saved/{query_id}/) — destructive — Delete a saved query.
  • List an Organization's Environments (GET /api/0/organizations/{organization_id_or_slug}/environments/) — read — Lists an organization's environments.
  • Resolve an Event ID (GET /api/0/organizations/{organization_id_or_slug}/eventids/{event_id}/) — read — This resolves an event ID to the project slug and internal issue ID and internal event ID.
  • Query Explore Events in Table Format (GET /api/0/organizations/{organization_id_or_slug}/events/) — read — Retrieves explore data for a given organization.

Note: This endpoint is intended to get a table of results, and is not for doing a full export of data sent to Sentry.

The field query parameter determines what fields will be selected in the data and meta keys of the endpoint response.

  • The data key contains a list of results row by row that match the query made
  • The meta key contains information about the response, including the unit or type of the fields requested
  • Query Explore Events in Timeseries Format (GET /api/0/organizations/{organization_id_or_slug}/events-timeseries/) — read — Retrieves explore data for a given organization as a timeseries.

This endpoint can return timeseries for either 1 or many axis, and results grouped to the top events depending on the parameters passed

  • Create an External User (POST /api/0/organizations/{organization_id_or_slug}/external-users/) — write — Link a user from an external provider to a Sentry user.
  • Update an External User (PUT /api/0/organizations/{organization_id_or_slug}/external-users/{external_user_id}/) — write — Update a user in an external provider that is currently linked to a Sentry user.
  • Delete an External User (DELETE /api/0/organizations/{organization_id_or_slug}/external-users/{external_user_id}/) — destructive — Delete the link between a user from an external provider and a Sentry user.
  • Retrieve Data Forwarders for an Organization (GET /api/0/organizations/{organization_id_or_slug}/forwarding/) — read — Returns a list of data forwarders for an organization.
  • Create a Data Forwarder for an Organization (POST /api/0/organizations/{organization_id_or_slug}/forwarding/) — write — Creates a new data forwarder for an organization. Only one data forwarder can be created per provider for a given organization.

Project-specific overrides can only be created after creating the data forwarder.

  • Update a Data Forwarder for an Organization (PUT /api/0/organizations/{organization_id_or_slug}/forwarding/{data_forwarder_id}/) — write — Updates a data forwarder for an organization or update a project-specific override. Updates to the data forwarder's configuration require org:write permissions, and the entire configuration to be provided, including the project_ids field.

To configure project-specific overrides, specify only the following fields:

  • 'project_id': The ID of the project to create/modify the override for.
  • 'overrides': Follows the same format as config but all provider fields are optional, since only specified fields are overridden.
  • 'is_enabled': To enable/disable the forwarder for events on the specific project.

Overrides can be performed with project:write permissions on the project being modified.

  • Delete a Data Forwarder for an Organization (DELETE /api/0/organizations/{organization_id_or_slug}/forwarding/{data_forwarder_id}/) — destructive — Deletes a data forwarder for an organization. All project-specific overrides will be deleted as well.
  • List an Organization's Available Integrations (GET /api/0/organizations/{organization_id_or_slug}/integrations/) — read — Lists all the available Integrations for an Organization.
  • Retrieve an Integration for an Organization (GET /api/0/organizations/{organization_id_or_slug}/integrations/{integration_id}/) — read — OrganizationIntegrationBaseEndpoints expect both Integration and OrganizationIntegration DB entries to exist for a given organization and integration_id.
  • Delete an Integration for an Organization (DELETE /api/0/organizations/{organization_id_or_slug}/integrations/{integration_id}/) — destructive — OrganizationIntegrationBaseEndpoints expect both Integration and OrganizationIntegration DB entries to exist for a given organization and integration_id.
  • List an Organization's Issues (GET /api/0/organizations/{organization_id_or_slug}/issues/) — read — Return a list of issues for an organization. All parameters are supplied as query string parameters. A default query of is:unresolved is applied. To return all results, use an empty query value (i.e. ``?query=`).
  • Bulk Mutate an Organization's Issues (PUT /api/0/organizations/{organization_id_or_slug}/issues/) — write — Bulk mutate various attributes on a maxmimum of 1000 issues.
  • For non-status updates, the id query parameter is required.
  • For status updates, the id query parameter may be omitted to update issues that match the filtering. If any IDs are out of scope, the data won't be mutated but the endpoint will still produce a successful response. For example, if no issues were found matching the criteria, a HTTP 204 is returned.
  • Bulk Remove an Organization's Issues (DELETE /api/0/organizations/{organization_id_or_slug}/issues/) — destructive — Permanently remove the given issues. If IDs are provided, queries and filtering will be ignored. If any IDs are out of scope, the data won't be mutated but the endpoint will still produce a successful response. For example, if no issues were found matching the criteria, a HTTP 204 is returned.
  • List an Organization's Members (GET /api/0/organizations/{organization_id_or_slug}/members/) — read — List all organization members.

Response includes pending invites that are approved by organization owners or managers but waiting to be accepted by the invitee.

  • Add a Member to an Organization (POST /api/0/organizations/{organization_id_or_slug}/members/) — write — Add or invite a member to an organization.
  • Retrieve an Organization Member (GET /api/0/organizations/{organization_id_or_slug}/members/{member_id}/) — read — Retrieve an organization member's details.

Response will be a pending invite if it has been approved by organization owners or managers but is waiting to be accepted by the invitee.

  • Update an Organization Member's Roles (PUT /api/0/organizations/{organization_id_or_slug}/members/{member_id}/) — write — Update a member's organization-level and team-level roles.

Note that for changing organization-roles, this endpoint is restricted to user auth tokens. Additionally, both the original and desired organization role must have the same or lower permissions than the role of the organization user making the request

For example, an organization Manager may change someone's role from Member to Manager, but not to Owner.

  • Delete an Organization Member (DELETE /api/0/organizations/{organization_id_or_slug}/members/{member_id}/) — destructive — Remove an organization member.
  • Add an Organization Member to a Team (POST /api/0/organizations/{organization_id_or_slug}/members/{member_id}/teams/{team_id_or_slug}/) — write — This request can return various success codes depending on the context of the team:
  • 201: The member has been successfully added.
  • 202: The member needs permission to join the team and an access request has been generated.
  • 204: The member is already on the team.

If the team is provisioned through an identity provider, the member cannot join the team through Sentry.

Note the permission scopes vary depending on the organization setting "Open Membership" and the type of authorization token. The following table outlines the accepted scopes.

*Organization members are restricted to this scope. When sending a request, it will always return a 202 and request an invite to the team.

**Team Admins must have both org:read and team:write scopes in their user authorization token to add members to their teams.

  • Update an Organization Member's Team Role (PUT /api/0/organizations/{organization_id_or_slug}/members/{member_id}/teams/{team_id_or_slug}/) — write — The relevant organization member must already be a part of the team.

Note that for organization admins, managers, and owners, they are automatically granted a minimum team role of admin on all teams they are part of. Read more about team roles.

  • Delete an Organization Member from a Team (DELETE /api/0/organizations/{organization_id_or_slug}/members/{member_id}/teams/{team_id_or_slug}/) — destructive — Delete an organization member from a team.

Note the permission scopes vary depending on the type of authorization token. The following table outlines the accepted scopes.

*org:read can only be used to remove yourself from the teams you are a member of.

**Team Admins must have both org:read and team:admin scopes in their user authorization token to delete members from their teams.

  • Retrieve Monitors for an Organization (GET /api/0/organizations/{organization_id_or_slug}/monitors/) — read — Lists monitors, including nested monitor environments. May be filtered to a project or environment.
  • Create a Monitor (POST /api/0/organizations/{organization_id_or_slug}/monitors/) — write — Create a new monitor.
  • Retrieve a Monitor (GET /api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/) — read — Retrieves details for a monitor.
  • Update a Monitor (PUT /api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/) — write — Update a monitor.
  • Delete a Monitor or Monitor Environments (DELETE /api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/) — destructive — Delete a monitor or monitor environments.

…and 159 more. Run sentry operations --json for the full list.

Output contract

  • All commands accept --json and emit machine-readable output.
  • call returns { dryRun, operation, request, response }. dryRun: true means the call was not executed (write op without --yes).
  • search returns cached records. sync populates the local SQLite cache.

Provenance

  • Schema: gutenberg.blueprint.v1
  • Generated by: gutenberg 0.3.0
  • Source spec: /tmp/sentry-api.json

Frequently asked questions

What does the Sentry AI skill do?

sentry should become a local, searchable operational workspace, not only an endpoint wrapper. Use for 209 operation/source entries against https://{region}.sentry.io.

Why use Sentry on TypingMind?

Because you install it once and use it with any model. Sentry is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Sentry in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/JustVugg/tools-factory/tree/main/library/tools/sentry/skills/sentry. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Sentry?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Sentry?

As many as you like. As long as a model supports skills, you can use Sentry with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Sentry AI skill free?

Yes. It is published on GitHub by JustVugg under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇