Skip to main content
Glama

search_rules

Search D&D 5e SRD rules and conditions to quickly find specific game mechanics or look up condition details during gameplay.

Instructions

Search D&D 5e SRD rules and conditions. Look up specific conditions or search rules text.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryNoFull-text search query for rules
condition_nameNoName of a specific condition to look up

Implementation Reference

  • The core database logic for searching rules using Full-Text Search (FTS).
    export function searchRules(
      db: Database.Database,
      query: string,
    ): RuleRow[] {
      const ftsQuery = sanitizeFtsQuery(query);
      if (ftsQuery.length === 0) {
        return db
          .prepare('SELECT * FROM rules ORDER BY section ASC, name ASC')
          .all() as RuleRow[];
      }
      return db
        .prepare(
          'SELECT r.* FROM rules r WHERE r.id IN (SELECT rowid FROM rules_fts WHERE rules_fts MATCH ?) ORDER BY r.section ASC, r.name ASC',
        )
        .all(ftsQuery) as RuleRow[];
    }
  • The registration of the 'search_rules' MCP tool and its request handler, which dispatches to different modes (condition lookup, rule search, or listing conditions).
    export function registerSearchRules(
      server: McpServer,
      db: Database.Database,
    ): void {
      server.registerTool(
        'search_rules',
        {
          description:
            'Search D&D 5e SRD rules and conditions. Look up specific conditions or search rules text.',
          inputSchema: {
            query: z
              .string()
              .optional()
              .describe('Full-text search query for rules'),
            condition_name: z
              .string()
              .optional()
              .describe('Name of a specific condition to look up'),
          },
        },
        async ({ query, condition_name }) => {
          // Mode 1: Specific condition
          if (condition_name) {
            return handleCondition(db, condition_name);
          }
    
          // Mode 2: Full-text search rules
          if (query) {
            return handleRulesSearch(db, query);
          }
    
          // Mode 3: List all conditions
          return handleListConditions(db);
        },
      );
    }

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/gregario/dnd-oracle'

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