Speaks MCP 2026-07-28, drops the hosted stubs
Two changes, one release. The protocol layer moves to the 2026-07-28 revision
without breaking anything that talks to it today, and the two tools that never
did any work here are gone.
Breaking
slack_smart_searchandslack_triageare removed. They made no Slack
call; the OSS handlers returned an upgrade payload pointing at a hosted tier.
Every tool this package advertises now does its work on your machine. The
surface is 19 tools: 12 read-only, 4 write-path, 3 local workflow tools.
Clients that called either name receive the sameunknown_toolresult as
any other unknown name.SLACK_MCP_TOOLS=alladvertises 19 (≈3,134 estimated
schema tokens per turn, down from ≈3,600);read(12) andessentials(6)
are unchanged.- HTTP mode is per-request and stateless.
src/server-http.jsno longer
mints anMcp-Session-Id; everyPOST /mcpis answered by a fresh server
instance, andGET/DELETE— the 2025 session operations — answer405.
2025-era clients are served the same way and keep working; they simply
never had a session here. A client that depended on the SSEGETstream
for server-initiated messages will not receive them over HTTP. Access-Control-Allow-Headerschanged for the HTTP entry:mcp-session-id
is gone;MCP-Protocol-Version,Mcp-Method,Mcp-Name, andAcceptare
allowed. A browser-originated request whoseOriginis outside
SLACK_MCP_HTTP_ALLOWED_ORIGINSis now refused with403onPOST, not
only on preflight.@modelcontextprotocol/sdk(v1) is no longer a dependency. The runtime
is@modelcontextprotocol/server2.x and@modelcontextprotocol/node2.x.
Nothing in the package's public surface exposed the SDK, so this matters
only to anyone importing internals.
Added
- MCP 2026-07-28 support, from the same binary as every 2025 revision.
stdio negotiates the era per connection (serveStdio, default
legacy: 'serve'); HTTP serves it per request (createMcpHandler, default
legacy: 'stateless'). On the 2026-07-28 era,tools/listcarries
ttlMs: 60000, cacheScope: "public"(the advertised surface is fixed for the
life of a process), results carryresultType: "complete"and
_meta["io.modelcontextprotocol/serverInfo"],Mcp-Methodis enforced
against the body (-32020on disagreement), an unsupported revision is
refused with-32022, andserver/discovernames the supported revision.
2025-era protocol responses are byte-for-byte what they were; the one HTTP
change a 2025 client can observe is theWWW-Authenticateheader on the
bearer401, noted below. test/mcp-era.test.js— the proof behind the README's claim. It drives
the real SDK client at both eras against the in-process handler, spawns
src/server-http.jsandsrc/server.js, and asserts every conformance
detail above.check-public-surface-integrity.jsrefuses a README that says
"2026-07-28" without this file, an HTTP entry that mentions
sessionIdGenerator, or any import of the v1 SDK.WWW-Authenticateon the HTTP entry's bearer401(required since the
2025-06-18 revision) so a client can learn how to authenticate instead of
dead-ending.lib/mcp-server.js— one factory both transports build from. The
advertised tools, prompts, resources, and dispatch path can no longer drift
between stdio and HTTP.workers/mcp-worker.jsis a version-parity surface. The in-repo worker
had carried4.0.0in three places since 4.0.0 and always answered
initializewith2024-11-05; it now echoes the client's supported 2025
revision andcheck-version-parity.jsfails locally when its
WORKER_VERSIONdisagrees withpackage.json.
Changed
- The workflow-profile tool descriptions describe what runs here:
summary_cadencesetsslack_catch_me_up's default window;
workflow_kindsets theoutput_contractkeys. The previous copy described
a hosted scheduler and paid tiers inside the tool schema itself. - README,
docs/DEPLOYMENT-MODES.md,docs/TROUBLESHOOTING.md, the CLI help,
--apply-templatehelp, and the generated public pages state 19 tools and
no longer describe placeholder tools or indexed retrieval as part of the
local package.
Verify it yourself
npx -y @jtalk22/slack-mcp@5.0.0 --doctor
npx -y @modelcontextprotocol/inspector --cli npx -y @jtalk22/slack-mcp@5.0.0 --method tools/list # 19 toolsPublished from CI with npm provenance. Full diff: #232