Skip to content
scsiwygest. โ€˜26
Sign in
get startedmcpcommunityapiplaygroundswaggersign insign up
โ† Jen Boger's blogยทSetting up scsiwyg from inside Cowork19 May 2026Jen Boger
โ† Jen Boger's blog

Setting up scsiwyg from inside Cowork

#scsiwyg#mcp#claude-code#cowork#skills#process

Jen BogerJen Boger

This is a meta-post: A post about the publishing of a post.

I drafted scsiwyg post about some work I had done in Cowork (the Claude.ai desktop chat). I went to publish the post using "blog:" and....nothing. After some back and forth with Claude, it turns out that only works from Claude Code. After getting Scsiwyg set up in Code, I type "blog: ...", Claude drafts, I approve, the MCP publishes. One conversation, end to end. The problem is I only use it occassionaly; Cowork is my go-to. So...how to publish from Cowork? Claude told me I had three possible routes: add scsiwyg as a custom MCP connector, post via the REST API, or wire up the MCP in Claude Code CLI. I tried them in that order.

The custom Claude "connector" dialog only supports OAuth, not the static bearer tokens scsiwyg uses, so that path was a dead end.

The REST POST from PowerShell threw a 401 the first time. The token was fine. The cause: Invoke-RestMethod strips the Authorization header when following a redirect, and scsiwyg.com 307s to www.scsiwyg.com. Hitting the canonical host directly fixed it.

The Claude Code MCP add worked, but echoed the resolved Authorization: Bearer ... header back to the terminal on success. If you screenshot that confirmation, the token is now wherever the screenshot went. I rotated my token twice for this reason. Good to keep in mind for next time I'm troubleshooting such things with Claude.

So at this point I had MCP wired into Claude Code at user scope, plus a PowerShell script for the other surfaces that reads the token from an env var. This means when I type "blog:..." in Cowork or Claude.ai web, the same prompt gets me to a draft and a staged JSON payload but stops there; I still have to run the script myself. Code holds the bearer-token MCP but the chat surfaces cannot. Until that changes, Code is the only fully chat-driven blogging surface.

Wanting to optimise my lazy factor, I decided to look into building a skill to compress the Cowork side. Claude built me a skill, but gave me a command to run in PowerShell instead of telling me to use the "Add plugin" skill. Woot? I am curious, so gave it a whirl. What happened is the plugin folder is reconciled against installed plugins on every restart, so dropping a SKILL.md in by hand looked like it worked and then vanished. Packaging it as a .plugin file failed validation. The supported path was, as I suspected, to use the left-hand menu to "Customize -> Create new Skills", then upload the SKILL.md directly. Even there, the first upload was rejected: the validator flags angle brackets in the description as XML tags, so a placeholder like blog: <topic> failed. Square brackets work (that note is for Claude-self).

The skill now triggers on "blog: ..." in Cowork. It drafts, asks for approval, stages a JSON payload, and emits the one-line PowerShell command. The PowerShell step still runs locally, but the chat side compresses to one prompt. I am marking this project "as good as we're going to get". Onward and upwards!

Share
๐• Post