WritingmateWritingmate

What Shipped This Week: OAuth Logins for MCP, a Rebuilt Developer Page, and a Round of Reliability Fixes

Claude and ChatGPT can now sign in to Writingmate's MCP server with one click instead of an API key, the /developers page got rebuilt, and we closed out a string of billing and generation bugs.

Try Writingmate Free
200+ models
One subscription
No API keys
Cancel anytime
Writingmate weekly product update banner listing OAuth, developer page, and reliability fixes
Artem Vysotsky

Author, Co-Founder & CEO

Artem Vysotsky

Sergey Vysotsky

Reviewer, Co-Founder & CMO

Sergey Vysotsky

5 min read
Updated: 07/17/2026

The biggest thing we shipped this week doesn't show up as a button anywhere in the product — it's that Claude, ChatGPT, and any other MCP-compatible client can now connect to Writingmate with a normal sign-in instead of copy-pasting an API key. That took nine days and about twenty small pull requests to get right, because OAuth handshakes fail in ways that only show up in production. We also rebuilt the /developers page from scratch and cleared out a backlog of billing and generation bugs that were quietly costing people time.

Here's the full rundown, with links to try each thing.

FeatureCategoryWho it's for
OAuth login for MCPNewAnyone connecting Claude, ChatGPT, or an agent tool to Writingmate
Walkthrough videos on /developers and free toolsNewPeople evaluating the API or a free tool before signing up
Redesigned /developers pageImprovedDevelopers setting up the API or MCP for the first time
Clearer image & video error messagesImprovedAnyone generating images or video
Trial subscription reconciliationFixedTrial and AppSumo users upgrading or canceling
Agent delete timeoutsFixedAnyone managing custom agents

Connect Claude, ChatGPT, or any MCP client with a normal sign-in

Until this week, using Writingmate's MCP server from Claude or another agent tool meant generating a developer API key and pasting it into a config file. That works, but it's an extra step that trips up anyone who just wants to try it. Now MCP supports OAuth 2.1: you click connect, approve a consent screen, and you're in — the same flow you'd expect from any modern integration.

The underlying fix was less glamorous than it sounds. Claude's OAuth handshake succeeded, but the very next call to /api/mcp came back 401 because our auth layer only recognized wm_ developer keys, not a delegated Supabase OAuth bearer. We traced it through several layers: the token needed to validate against Supabase's userinfo endpoint, the issuer had to be derived correctly in production, the tool proxy was silently resolving to a stale domain that 301-redirected and stripped the Authorization header, and media tools like generate_image and generate_video needed the same OAuth path as chat completions. Each of those was its own production incident before the connection worked end-to-end.

To try it, go to writingmate.ai/developers, choose "Connect with OAuth," and approve the consent screen from Claude, Cursor, or ChatGPT. Developer API keys still work exactly as before if you'd rather not use OAuth.

The /developers page got a real redesign, plus a video

The old /developers page was a config-first landing page: a big JSON snippet up top, then more JSON below it. It didn't explain who the API was for or what you got for your existing plan. We rebuilt it on the same components as the homepage — same header, same dark theme with purple accents, same accordion for FAQs — and replaced the redundant hero screenshot with a plain list of what's included in your plan.

We also added a "See it in action" section with a short walkthrough video showing an MCP connection from scratch, so you can watch the whole flow before doing it yourself. The video loads as a click-to-play poster frame, so it doesn't slow down the page for people who don't want to watch it.

Poster frame from the Writingmate MCP walkthrough video shown on the developers page

Setup cards that were cramped on tablet screens are now a proper 2x2 grid below desktop width, and the copy leads with what you can build rather than the transport protocol. If you tried /developers a few weeks ago and bounced off it, it's worth another look at writingmate.ai/developers.

Image and video generation get more reliable

Two separate bugs were turning legitimate provider responses into generic 500 errors. Image-only models like MAI-Image-2.5 were being sent through the general chat completions endpoint instead of OpenRouter's dedicated Image API, so their responses didn't parse and generations failed outright. We now route image-only models through the correct endpoint and parse the b64_json response it returns.

Separately, when a direct image provider or FAL video rejected a request — for a safety violation, a likeness policy, or a technical limit — we were surfacing a flat "something went wrong" instead of the real reason. Now those errors are unwrapped and classified: a moderation block reads as a moderation block, and a technical failure gets a next step, including a direct link to Writingmate help. Same fix applies to short audio clips sent to transcription, which used to come back as a 500 instead of the provider's actual 400.

None of this required any change on your end — it's live in writingmate.ai/images and chat already.

Fixed this week

  • Trial subscription upgrades and cancellations now reconcile correctly against Stripe by workspace, so a shared Stripe customer ID can no longer overwrite an AppSumo or sibling workspace's plan.
  • Deleting a custom AI agent no longer times out — the delete query was missing foreign-key indexes on chats.assistant_id and messages.assistant_id.
  • Streaming chat requests now return the real upstream error (like a model that doesn't exist) instead of a generic 500.
  • Subscription background jobs now fail closed if their authorization secret is missing, instead of quietly skipping the check.
  • Removed the unused temperature and context-length controls from the chat settings menu — they weren't doing anything for most users and cluttered the overflow menu.

Thanks for reading this far — a lot of this week's work is invisible unless you're the one hitting the bug, so we wanted to write it down. You can browse every past release, including the ones further back than this post covers, on the changelog.

— Artem

Questions about this week's release

Artem Vysotsky

Written by

Artem Vysotsky

Ex-Staff Engineer at Meta. Building the technical foundation to make AI accessible to everyone.

Sergey Vysotsky

Reviewed by

Sergey Vysotsky

Ex-Chief Editor / PM at Mosaic. Passionate about making AI accessible and affordable for everyone.

Ready to experience the power of AI?

Access 200+ AI models, custom agents, and powerful tools - all in one subscription.