Skip to content

Withhold media generation on the Claude shared endpoint, odds on ChatGPT - #1538

Merged
helpcodeai merged 1 commit into
mainfrom
fix/shared-endpoint-generative-media
Nov 5, 2026
Merged

helpcodeai merged 1 commit into
mainfrom
fix/shared-endpoint-generative-media

Conversation

@helpcodeai

Copy link
Copy Markdown
Contributor

Summary

The shared endpoint is added from assistant directories, so it serves only what their policies allow.

  • Claude: section 4B of the Anthropic Software Directory Policy excludes software that uses AI models to generate images, video or audio, including text-to-speech and voice models. Only design visuals are allowed. The default profile (Claude and unidentified clients) still served those connectors.
  • ChatGPT: OpenAI's app submission guidelines list real-money gambling and sportsbook wagers as prohibited goods. The ChatGPT profile still served the betting odds connectors.

Everything stays available on a server's own URL, as crypto and payment connectors already do.

Changes

  • Generation connectors, withheld whole on the default profile: elevenlabs, fish-audio, genapi, heygen, higgsfield, kie-ai, replicate, stability-ai.
  • Generation tools, withheld one by one on the default profile: the rest of each connector is still served.
    • openai, gemini, xai: generate and edit image
    • openrouter: generate image
    • cloudinary: generate image, generate from images, generation task
    • freepik: Mystic generation and its task
    • deepgram: text to speech
    • telnyx: speak text
    • kittl: generate media
  • Betting odds connectors, withheld on the ChatGPT profile: odds-api, oddsrelay, the-odds-api. The Claude policy does not exclude sports data, so the default profile keeps them.
  • Clear answers instead of silent gaps:
    • A call to a withheld tool gets an error that says why.
    • anythingmcp_list_connectors adds generationToolsNotServedHere with a reason.
    • The chat setup search tells the user that a connector's generation tools run on the server's own URL.
  • Self-hosted and the per-server URL: no change. Only the shared endpoint (/mcp on Cloud, MCP_SHARED_ENDPOINT_TOOLS=fixed) applies these exclusions.

Type

  • Bug fix

Testing

  • Added/updated unit tests
    • Per-profile access, tool-level exclusion, error messages and list_connectors fields.
    • A guard that every slug and tool name in the lists exists in the catalog.
    • Setup search per profile.

Commands, run in packages/backend:

  • npx jest src/mcp-server/shared-toolset.spec.ts src/adapters/connector-setup.service.spec.ts: 85 passed.
  • npx eslint <changed files>: clean.
  • npx tsc --noEmit -p tsconfig.json: clean.

Checklist

  • My code follows the existing code style
  • I have tested my changes locally
  • This PR has a descriptive title

@helpcodeai
helpcodeai requested a review from D3nisty as a code owner November 5, 2026 14:47
@helpcodeai
helpcodeai merged commit e117798 into main Nov 5, 2026
17 checks passed
@helpcodeai
helpcodeai deleted the fix/shared-endpoint-generative-media branch November 5, 2026 15:04
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant