Install

Works with Drupal: ^10 || ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 2.74 MB
MD5: 67e6f7d85af317973760403464331055
SHA-1: fc850f9dac568da23f22123117178314cf9a9dc9
SHA-256: f0e3ef4b5743ff898abb96d7de6bcdaab5d7d8eee953dc8af12406dc24098894
Download zip 3.37 MB
MD5: 2ae0236db0720c6447262da2e5609908
SHA-1: d90959d604f3afd97edde033156f776643ca86b7
SHA-256: 842b931ba224eada0e4b17d9c67fa9b232d9b2a3951191a40cb2daaaefd8f50d

Release notes

Fixes cached resource content leaking between users, 503s from concurrent requests on one session, and stale stdio timestamps. Requires mcp/sdk ^0.9.

Upgrade notes

This release requires mcp/sdk 0.9. Update both packages together:

composer update drupal/mcp_server mcp/sdk --with-all-dependencies

Then rebuild caches with drush cr (or run drush updb). Several service definitions changed, and until the container is rebuilt, POST /mcp answers 500 with an ArgumentCountError.

mcp/sdk 0.9 validates a tool's structuredContent against its outputSchema. A result that doesn't match now comes back as a CallToolResult with isError: true instead of the value. Return new \stdClass() for an empty object, because [] is sent as an array. See the mcp/sdk changelog for the rest of 0.9.

Contributors (10)

ahmad-khalil-imagex, boychev, dcgoodwin, kotekirkitadze, mglaman, mortona2k, penyaskito, roborn, ronaldtebrake, scott falconer

Changelog

Issues: 5 issues resolved.

Changes since 2.0.0-beta6 (compare):

Bug

  • fix: #3585955 Wait again for the session lock after a lost race
  • fix: #3585953 Give each stdio request its own request time
  • fix: #3585956 Vary cached resource content by each caller's contexts

Task

  • test: #3585943 Move the JSON-RPC request builder into RequestTrait
  • chore: #3585949 Require mcp/sdk ^0.9
Created by: mglaman
Created on: 29 Oct 2026 at 16:20 UTC
Last updated: 29 Oct 2026 at 16:20 UTC
Bug fixes

Other releases