Skip to content

feat: add FRESHDESK_TICKETS_READ_ONLY env var to block ticket write operations#41

Open
devchristian1337 wants to merge 13 commits intoeffytech:mainfrom
devchristian1337:main
Open

feat: add FRESHDESK_TICKETS_READ_ONLY env var to block ticket write operations#41
devchristian1337 wants to merge 13 commits intoeffytech:mainfrom
devchristian1337:main

Conversation

@devchristian1337
Copy link
Copy Markdown

Summary

  • Adds FRESHDESK_TICKETS_READ_ONLY environment variable support
  • When set to true, all ticket write operations (create, update, delete, reply, note, summary update/delete) return an error without calling the Freshdesk API
  • Read operations remain fully functional
  • Useful for environments where AI agents should only read tickets

Configuration

{
  "env": {
    "FRESHDESK_TICKETS_READ_ONLY": "true"
  }
}

c.hannachi and others added 3 commits March 19, 2026 12:13
…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>
c.hannachi and others added 10 commits March 24, 2026 16:19
# 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
- 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant