Skip to main content
Glama
jeremykenedy

Claude Rules MCP Server

by jeremykenedy

Table of Contents

Related MCP server: Skills MCP Server

About

An MCP (Model Context Protocol) server that reads Claude Code skills and rules from the filesystem and exposes them as tools. Supports HTTP and stdio transports with optional token authentication and Cloudflare Tunnel for remote access.

Features

  • Serves 484 skills with progressive disclosure (metadata first, full content on demand)

  • 17 global rules accessible individually or concatenated

  • Project-level rule discovery across multiple repositories

  • Keyword search across all skills and rules

  • Monitor summary integration (Gmail and court monitors)

  • Token authentication for HTTP transport

  • Dual transport: HTTP for containers/web, stdio for Claude Desktop

Requirements

  • Node.js 20+

  • npm 10+

  • Docker (for container deployment)

Installation

npm install claude-rules-mcp

Or run directly without installing:

npx claude-rules-mcp init

Manual

git clone https://github.com/jeremykenedy/claude-rules-mcp-server.git
cd claude-rules-mcp-server
npm install
npm run build

Quick Start

Run the interactive setup wizard:

npx claude-rules-mcp init

The wizard walks through transport selection, paths, and token auth. It creates a .env file with your configuration.

Then start the server:

npx claude-rules-mcp run

Tools

Tool

Description

rules_get_manifest

Returns the full skills manifest (names and descriptions, not file contents)

rules_list_skills

Lists all skills with optional keyword filter

rules_get_skill

Reads the full SKILL.md for a specific skill by name

rules_get_skill_references

Lists and reads reference files for a skill

rules_list_global_rules

Lists all 17 global rule names

rules_get_global_rule

Reads a specific global rule by name

rules_get_global

Concatenates all 17 rule files into one response

rules_get_project

Reads project-level CLAUDE.md and .claude/rules/

rules_list_projects

Scans for projects with .claude/ directories

rules_search

Keyword search across skill descriptions and rule contents

read_monitor_summary

Reads the latest Gmail/court monitor summary

Configuration

Variable

Default

Description

TRANSPORT

stdio

http or stdio

PORT

3456

HTTP port

CLAUDE_DATA_PATH

/data/.claude

Path to skills, rules, and manifest

CLAUDE_PROJECTS_DIR

/data/sites

Path to project directories

MCP_SECRET

(none)

Token for HTTP authentication (recommended for remote)

Docker Deployment

docker build -t claude-rules-mcp:latest .

docker run -d \
  --name claude-rules-mcp \
  --restart unless-stopped \
  -p 3456:3456 \
  -e TRANSPORT=http \
  -e PORT=3456 \
  -e CLAUDE_DATA_PATH=/data/.claude \
  -e CLAUDE_PROJECTS_DIR=/data/sites \
  -e MCP_SECRET=your-secret-token \
  -v /path/to/.claude:/data/.claude:ro \
  -v /path/to/sites:/data/sites:ro \
  claude-rules-mcp:latest

Health check:

curl http://localhost:3456/health

Claude Desktop Setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "claude-rules": {
      "command": "npx",
      "args": ["-y", "claude-rules-mcp", "run"]
    }
  }
}

For remote via SSH:

{
  "mcpServers": {
    "claude-rules": {
      "command": "ssh",
      "args": [
        "user@your-server",
        "cd /path/to/server && TRANSPORT=stdio node dist/index.js"
      ]
    }
  }
}

Claude.ai Web Setup

Settings > Customize > Connectors > + > Add custom connector:

Name: Claude Rules
URL: https://your-domain.com/mcp?token=your-secret-token

Testing

# Health check
curl http://localhost:3456/health

# Test with token
curl -X POST "http://localhost:3456/mcp?token=your-token" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'

License

This package is open-sourced software licensed under the MIT license.

Available Tools

11 tools
read_monitor_summaryA

Read the latest monitor summary (Gmail job/legal alerts + Oregon court case updates). Check this at the start of every conversation to see if there are new job leads, legal updates, or urgent items.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It indicates a read operation, but could mention if the data is cached or if it triggers any updates. Still clear enough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loads purpose and usage, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and clear purpose, the description sufficiently covers what the tool does and when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema, so description needn't add param info. Baseline 4 is appropriate as description adds no extra param details, but none are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads the latest monitor summary, specifying content types (Gmail job/legal alerts, Oregon court case updates). It distinguishes from sibling tools which are all rules-related.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises checking at the start of every conversation to see new items, providing clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_get_globalGet All Global RulesA
Read-onlyIdempotent

Reads and concatenates ALL 17 global rule files into one response. Use this to load your complete global ruleset into context at once. For a single rule, use rules_get_global_rule instead.

Returns: All 17 rules concatenated with section headers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying the concatenation of 17 files, section headers in return, and the bulk nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-load the action and result, then provide usage guidance and return format. Every sentence earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, parameterless tool with rich annotations, the description fully covers purpose, usage, and return format. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. Baseline for 0 params is 4. Description adds no parameter info, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb (reads and concatenates), resource (all global rule files), and scope (all 17). It distinguishes from the sibling tool rules_get_global_rule by stating when to use that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool (to load complete global ruleset) and when not (for a single rule, use rules_get_global_rule instead). Provides clear context for agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_get_global_ruleGet Global RuleA
Read-onlyIdempotent

Reads a specific global rule file by name from ~/.claude/rules/{name}.md.

Args:

  • rule_name (string): Rule name without .md (e.g. "php", "laravel", "conventions", "testing") Valid: artisan-commands, banners, commands, conventions, echo-broadcasting, horizon, laravel, license, livewire, package-standards, pest, php, readme, socialite, tailwind, testing, vibe-flow

Returns: Full rule file content.

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_nameYesRule name without .md extension

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds the file path and return content, but does not offer significant behavioral context beyond what annotations provide. It is consistent and adds marginal value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured as a docstring with Args and Returns sections, making it easy to parse. It is concise but includes necessary details like the list of valid values. Could be slightly tighter but is well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter with full schema coverage, rich annotations, and no output schema, the description covers what the tool does, input format, valid values, and return type. It is complete for the tool's simplicity, though error handling is not mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description expands on it by listing valid values and clarifying the naming convention (e.g., '.md' suffix omitted). It adds meaning beyond the schema by giving explicit examples and the path format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Reads a specific global rule file by name from ~/.claude/rules/{name}.md', specifying the verb (reads), resource (global rule file), and location. It effectively distinguishes from sibling tools like rules_list_global_rules and rules_get_global.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a comprehensive list of valid rule names, guiding correct input. It implicitly defines when to use this tool (when needing content of a specific rule) but does not explicitly state when not to use it or suggest alternatives like listing rules first. However, the list and context are helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_get_manifestGet Skills ManifestA
Read-onlyIdempotent

Returns the full skills-manifest.json — names and descriptions for all 484 skills plus 17 global rule names. Use this first to discover what is available before fetching individual skills or rules. Returns structured JSON: { total_skills, total_rules, skills[], rules[] }

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds output structure details (total_skills, total_rules, skills[], rules[]), providing useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is three sentences with no wasted words. First sentence immediately states the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although no output schema is provided, the description fully explains the return structure. Given zero parameters and simple purpose, the description is complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has zero parameters, so description does not need to explain parameters. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it returns the full skills-manifest.json with counts and lists. It distinguishes from siblings by advising to use it first before fetching individual items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends using this tool first to discover available skills and rules before fetching individual ones, providing clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_get_projectGet Project RulesA
Read-onlyIdempotent

Reads CLAUDE.md and all .claude/rules/*.md files for a specific project.

Args:

  • project_name (string): Project folder name under ~/sites (e.g. "laravel-auth-modernized", "greenboard")

Returns: Project CLAUDE.md and all project-level rule files concatenated.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYesProject folder name under ~/sites

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint), the description reveals concrete behavior: it reads specific file paths and returns concatenated content. This adds value by specifying the exact sources and output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences total, front-loaded with the core purpose followed by a structured Args/Returns section. Every sentence contributes essential information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with no output schema, the description fully explains what files are read and how the result is returned. No gaps remain for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description essentially repeats the schema's parameter description ('Project folder name under ~/sites'). No additional meaning or usage hints are provided beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Reads' and clearly states the resource: 'CLAUDE.md and all .claude/rules/*.md files for a specific project.' This distinguishes it from sibling tools like rules_get_global or rules_get_skill, which target different rule scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. While the sibling names suggest different contexts (global, skill, project), no direct guidance is provided, leaving the inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_get_skillGet SkillA
Read-onlyIdempotent

Reads the full SKILL.md for a specific skill by name.

Args:

  • skill_name (string): Exact skill name (e.g. "vue-expert", "php-pro", "laravel-auth")

Returns: Full SKILL.md content.

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_nameYesExact skill name from the manifest

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and idempotentHint, so the description's disclosure of returning full content adds value. There is no contradiction, and the behavioral traits are well-covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, using only two sentences plus an Args/Returns structure. Every word is necessary, and it front-loads the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and no output schema, the description adequately covers what to provide and what to expect. It lacks details on error cases or edge conditions, but that is acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema already describes the parameter. The description adds concrete examples ('vue-expert', 'php-pro') that clarify the expected format, enhancing the semantic understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Reads the full SKILL.md') and the resource ('for a specific skill by name'). It distinguishes from sibling tools like rules_get_skill_references by specifying 'full SKILL.md content', making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as rules_get_skill_references or rules_get_global. The description only states what the tool does, not the context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_get_skill_referencesGet Skill ReferencesA
Read-onlyIdempotent

Lists or reads reference files for a specific skill. Many skills have 5-7 deep-dive reference docs in their references/ subdirectory.

Args:

  • skill_name (string): Exact skill name

  • filename (string, optional): Specific reference filename to read. If omitted, lists all references.

Returns: List of reference filenames, or full content of a specific reference file.

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_nameYesExact skill name
filenameNoSpecific reference file to read (e.g. 'composition-api.md')

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's behavioral disclosure is light but sufficient. Adds value by explaining the two modes (list vs read) and typical reference count, which is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences plus Args/Returns section. Front-loaded with purpose. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but description covers return values (list of filenames or full content). Also provides typical reference count. Complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description adds significant meaning beyond the schema: it explains the conditional behavior (listing all if filename omitted, reading content if provided). Schema coverage is 100%, but the description enriches the semantics with usage patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Lists or reads reference files for a specific skill.' Distinguishes from sibling tools like rules_get_skill (which gets the skill itself) by specifying reference files and mentioning the references/ subdirectory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context that 'many skills have 5-7 deep-dive reference docs,' implying this is for supplementary documentation. No explicit when-not-to-use or alternative tools, but the context is clear enough for most use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_list_global_rulesList Global RulesA
Read-onlyIdempotent

Lists all 17 global rule names available in ~/.claude/rules/. Rules: artisan-commands, banners, commands, conventions, echo-broadcasting, horizon, laravel, license, livewire, package-standards, pest, php, readme, socialite, tailwind, testing, vibe-flow. Use rules_get_global_rule to read a specific rule.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint false, and idempotentHint true. The description adds behavioral context beyond annotations: the exact location (~/.claude/rules/), the fixed number of 17 rules, and enumerates them by name. No contradictions. Slight deduction because the list format is implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences plus a bullet-like list. The first sentence states the core function and location; the second provides usage guidance. Every element is essential; no redundancy. Well-structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fully covers what the agent needs: it lists the exact rules, explains the path, and directs to the parent tool for reading. It is complete for this simple listing task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, which yields a baseline of 4 per guidelines. The description does not need to add parameter meaning since there are none. No additional parameter information is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Lists all 17 global rule names' with the specific path and provides the full list, leaving no ambiguity about the resource and scope. It is clearly distinguished from sibling tools like rules_get_global_rule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit guidance: 'Use rules_get_global_rule to read a specific rule.' This tells the agent when to use the sibling tool instead. While it could also state when not to use this tool, the guidance is clear and practical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_list_projectsList Projects with Claude RulesA
Read-onlyIdempotent

Scans the projects directory and lists all projects that have a .claude/ directory.

Returns: List of project names with Claude rules configured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it scans a directory and lists results, but does not disclose additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first defines the action, the second clarifies the return value. It is concise, front-loaded, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description is complete. It specifies what the tool does (scan for .claude/ directories) and what it returns (list of project names), leaving no ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the input schema provides full coverage. The description naturally covers the lack of parameters by stating the action without needing further explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'scans the projects directory and lists all projects that have a .claude/ directory'. The verb 'lists' and resource 'projects with Claude rules' are specific and distinct from sibling tools like rules_list_global_rules and rules_list_skills.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any restrictions. However, the simple functionality implies its use case, so it meets the minimum viable level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rules_list_skillsList All SkillsA
Read-onlyIdempotent

Lists all 484 skills with names and descriptions, read from the manifest (fast — no filesystem scan). Optionally filter by category or keyword.

Args:

  • filter (string, optional): Filter by name or description keyword (case-insensitive)

Returns: Formatted skill list with descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional keyword to filter skill names/descriptions

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. The description adds valuable context: it reads from manifest (fast, no filesystem scan) and returns formatted output with descriptions. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences plus Args/Returns. It front-loads the main purpose, avoids fluff, and is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides a brief return format. Annotations are rich. For a simple list tool with one optional param, it is sufficiently complete, though details like field names are omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. The description says 'filter by category or keyword' but the schema only mentions keyword, causing a slight mismatch. Otherwise, it adds minimal extra beyond the schema's parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Lists all 484 skills with names and descriptions' specifying verb (lists), resource (skills), and scope (all). It distinguishes from siblings like 'rules_get_skill' by indicating the listing nature and mentions speed advantage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filtering by category or keyword, giving clear context for use. It does not explicitly state when to avoid this tool, but given the simple list operation and sibling tools, the usage is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a clearly distinct operation: reading summaries, getting global rules (single or all), listing rules, skills, projects, getting skill references, and searching. No two tools have overlapping purposes.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case, with a uniform 'rules_' prefix for most tools. The exception 'read_monitor_summary' still uses verb_noun, maintaining overall consistency.

Tool Count5/5

11 tools is well-scoped for the server's domain (reading rules, skills, projects, monitor). Each tool provides a necessary distinct operation without redundancy.

Completeness5/5

The tool surface covers all read operations for rules, skills, projects, and monitor summaries, plus search and listing. While write operations are absent, the server's apparent purpose is read-only access, making it complete for that use case.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server that transforms Claude-style skills and resources into callable tools for any MCP-compatible agent or client. It automatically discovers, exposes, and executes scripts from skills organized in local directories or packaged archives.
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes 1,334 skills as global MCP tools across Claude Desktop, VSCode, and Cursor, automatically discovering and categorizing skills from a local directory into 18 categories with semantic search capabilities.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Serves project-specific skills and behavioral rules to AI agents via MCP, enabling automatic injection of behavioral rules and on-demand knowledge for coding assistants like Claude Code and Gemini CLI.
    1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jeremykenedy/claude-rules-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server