diff --git a/Gemfile b/Gemfile index b5eba24..6047c83 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,23 @@ source 'https://rubygems.org' -gem 'jekyll' + +# Jekyll and GitHub Pages +gem 'jekyll', '~> 4.4.1' gem 'liquid' gem "webrick", "~> 1.8" + +# GitHub Pages compatible plugins +group :jekyll_plugins do + gem 'jekyll-feed', '~> 0.17' + gem 'jekyll-sitemap', '~> 1.4' + gem 'jekyll-seo-tag', '~> 2.8' +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] diff --git a/Gemfile.lock b/Gemfile.lock index 4dad376..7aaeccf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,38 +1,94 @@ GEM remote: https://rubygems.org/ specs: - albino (1.3.3) - posix-spawn (>= 0.3.6) - classifier (1.3.5) - fast-stemmer (~> 1.0.0) - mathn - rake - directory_watcher (1.5.1) - fast-stemmer (1.0.2) - jekyll (0.11.0) - albino (>= 1.3.2) - classifier (>= 1.3.1) - directory_watcher (>= 1.1.1) - kramdown (>= 0.13.2) - liquid (>= 1.9.0) - maruku (>= 0.5.9) - kramdown (2.4.0) - rexml - liquid (5.4.0) - maruku (0.7.3) - mathn (0.1.0) - posix-spawn (0.3.15) - rake (13.0.6) - rexml (3.3.9) - webrick (1.8.2) + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bigdecimal (3.3.1) + colorator (1.1.0) + concurrent-ruby (1.3.6) + csv (3.3.5) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.2-x86_64-linux-gnu) + forwardable-extended (2.6.0) + google-protobuf (4.33.2-x86_64-linux-gnu) + bigdecimal + rake (>= 13) + http_parser.rb (0.8.0) + i18n (1.14.7) + concurrent-ruby (~> 1.0) + jekyll (4.4.1) + addressable (~> 2.4) + base64 (~> 0.2) + colorator (~> 1.0) + csv (~> 3.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + json (~> 2.6) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.3, >= 0.3.6) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + json (2.18.0) + kramdown (2.5.1) + rexml (>= 3.3.9) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (7.0.0) + rake (13.3.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.4.4) + rouge (4.6.1) + safe_yaml (1.0.5) + sass-embedded (1.96.0-x86_64-linux-gnu) + google-protobuf (~> 4.31) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.6.0) + webrick (1.9.2) PLATFORMS - x86_64-linux + x86_64-linux-gnu DEPENDENCIES - jekyll + jekyll (~> 4.4.1) + jekyll-feed (~> 0.17) + jekyll-seo-tag (~> 2.8) + jekyll-sitemap (~> 1.4) liquid + tzinfo (>= 1, < 3) + tzinfo-data + wdm (~> 0.1.1) webrick (~> 1.8) BUNDLED WITH - 2.3.20 + 2.4.19 diff --git a/_config.yml b/_config.yml index 98f69f6..5087060 100644 --- a/_config.yml +++ b/_config.yml @@ -11,6 +11,23 @@ copyright: 'Drupal is a +
+
+

Drupal Tools MCP Server

+ +

A simple MCP (Model Context Protocol) server that suggests Drupal tools from the _data/projects folder. This server provides semantic search and discovery of Drupal development tools, utilities, and projects.

+ +

Features

+
    +
  • list_tools: List all available Drupal tools/projects with optional filtering
  • +
  • search_tools: Search for tools using semantic matching
  • +
  • get_tool: Get detailed information about a specific tool
  • +
+ +

Installation with npm

+ +

The easiest way to use the MCP server is with npm:

+ +
+
npm install -g @drupaltools/mcp
+
+ +

Usage with Claude Desktop

+ +

Add the following to your Claude Desktop configuration file:

+ +
+
{
+  "mcpServers": {
+    "drupal-tools": {
+      "command": "drupaltools-mcp"
+    }
+  }
+}
+
+ +

Available Tools

+ +

1. list_tools

+

Lists all available Drupal tools/projects.

+ +

Parameters:

+
    +
  • category (optional): Filter by category (e.g., 'testing', 'cli', 'deployment')
  • +
  • limit (optional, default: 50): Maximum number of tools to return
  • +
+ +

2. search_tools

+

Search for tools using a query string. Uses smart scoring:

+
    +
  • Title matches: 100 points
  • +
  • Category matches: 50 points
  • +
  • Tag matches: 30 points
  • +
  • Description matches: 20 points
  • +
  • Homepage/source matches: 10 points
  • +
+ +

Parameters:

+
    +
  • query (required): Search query
  • +
  • limit (optional, default: 10): Maximum results to return
  • +
+ +

3. get_tool

+

Get detailed information about a specific tool by ID or name.

+ +

Parameters:

+
    +
  • tool_id (required): The tool ID (filename without .yml) or tool name
  • +
+ +

Development

+ +

The server is built using the JavaScript/TypeScript MCP SDK (@modelcontextprotocol/sdk v1.24.3) with ES modules.

+ +

Testing

+ +
+
npx @modelcontextprotocol/inspector node mcp-server/index.js
+
+ +

This opens a web UI where you can:

+
    +
  • See all available tools and their schemas
  • +
  • Test each tool with custom parameters
  • +
  • View real-time responses
  • +
  • Debug issues
  • +
+
+
+ \ No newline at end of file