spencerm 4f9a862c25 Support per-user identity via request headers
Add multi-user auth: _config reads X-Freshservice-Domain/X-Freshservice-Key
from the per-request headers (via the SDK request_ctx, set inside the tool's
task) and prefers them over the container env. One shared server can now act as
each caller's own Freshservice identity — actions attributed to them, their
permissions, their rate limit — while the env vars remain a single-user
fallback. Verified end-to-end that concurrent clients don't cross-wire and that
a client with no creds errors instead of falling back silently.

Docs/.env.example updated with the multi-user client config and the guidance to
omit env FS creds on a shared deployment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 08:23:52 -06:00

freshservice-claude

A Claude skill for working with Freshservice ITSM from chat / Cowork — view, create, update, reply to, and triage tickets; look up and update assets/CMDB; find agents, requesters, groups, and departments; and manage changes, problems, and releases via the Freshservice REST API v2.

Layout

File Purpose
SKILL.md Skill entry point — setup, common commands, guardrails
reference.md Endpoints, status/priority codes, filter-query syntax
scripts/fs.py Stdlib-only API helper (auth, URL building, paging, errors)

Install

Copy the skill into your Claude skills directory:

cp -R . ~/.claude/skills/freshservice

Configure credentials

mkdir -p ~/.freshservice
cat > ~/.freshservice/credentials <<'EOF'
FRESHSERVICE_DOMAIN=yourcompany
FRESHSERVICE_API_KEY=your_api_key
EOF
chmod 600 ~/.freshservice/credentials

python3 ~/.claude/skills/freshservice/scripts/fs.py check

The API key is in Freshservice → profile picture → Profile settings → API key. FRESHSERVICE_DOMAIN accepts the subdomain (yourcompany) or the full host. Environment variables of the same name override the file.

Usage

The skill activates when you mention Freshservice or a ticket/asset/change in chat. Under the hood it calls:

python3 scripts/fs.py request <METHOD> <PATH> [--param KEY=VALUE ...] [--data '<JSON>']

See SKILL.md and reference.md for details.

Description
Freshservice ITSM skill for Claude (Cowork) — tickets, assets/CMDB, people, changes/problems/releases via the REST API v2.
Readme 99 KiB
Languages
Python 86.3%
PowerShell 7%
Shell 5.8%
Dockerfile 0.9%