feat: add FRESHDESK_TICKETS_READ_ONLY env var to block ticket write operations#41
Open
devchristian1337 wants to merge 13 commits intoeffytech:mainfrom
Open
feat: add FRESHDESK_TICKETS_READ_ONLY env var to block ticket write operations#41devchristian1337 wants to merge 13 commits intoeffytech:mainfrom
devchristian1337 wants to merge 13 commits intoeffytech:mainfrom
Conversation
…perations When enabled, all ticket write operations (create, update, delete, reply, note, summary update/delete) return an error without calling the Freshdesk API. Read operations remain unaffected. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add --transport, --host, --port CLI args to server.py for remote hosting - Bump mcp[cli] to >=1.8.0 for streamable-http support - Update Dockerfile to python:3.11-slim with HTTP transport - Add fly.toml for Fly.io deployment (CDG region, auto-stop) - Add .dockerignore for leaner builds - Remove smithery.yaml (Smithery now uses URL-based publishing) - Remove .python-version and uv.lock (not needed for Docker deploy) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove fly.toml (switching to Railway) - Use shell form CMD in Dockerfile to expand $PORT at runtime - Railway injects PORT dynamically, server reads it via env var Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
# Conflicts: # Dockerfile # src/freshdesk_mcp/server.py
- Add config.py and freshdesk_client.py for query/env config and httpx timeouts - Streamable HTTP on /mcp, /health, MCP_TRANSPORT stdio|http, PORT/stateless - Tools use Context; multi-tenant query params; rename prompts to avoid shadowing - Dockerfile 3.11-slim, .dockerignore; pytest suite and manual script - README: Railway, Claude.ai URL, security note, troubleshooting Made-with: Cursor
Made-with: Cursor
- READ / WRITE / DELETE presets (readOnly, destructive, idempotent, openWorld) - Test list_tools exposes annotations on sample tools Made-with: Cursor
The README only documented 28 of 59 implemented tools. Added missing sections for canned responses, solutions/knowledge base, groups, contact fields, and ticket field management. Documented MCP prompts and ToolAnnotations. Reorganized tools into categorized tables. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FRESHDESK_TICKETS_READ_ONLYenvironment variable supporttrue, all ticket write operations (create, update, delete, reply, note, summary update/delete) return an error without calling the Freshdesk APIConfiguration
{ "env": { "FRESHDESK_TICKETS_READ_ONLY": "true" } }