Skip to main content
Glama

woody-mcp

mcp-name: io.github.Gunsmith-Academy/woody-mcp

MCP server for Woody, an AI firearms expert with a verified knowledge base, jurisdiction-specific legal engine, and multi-agent specialist routing.

Add Woody as a native tool in Claude Desktop, Claude Code, Cursor, Windsurf, or any MCP-compatible client.

What Woody can do

  • Answer any firearms question with verified citations (builds, maintenance, legal, ballistics, product specs)

  • Look up state-specific firearms laws with jurisdiction-aware citations

  • Search a curated knowledge base of manufacturer specs and community-verified data

  • Route complex questions to specialist agents (legal, ballistics, maintenance)

Related MCP server: concierge-mcp

Install

pip install woody-mcp

Or with uvx (no install needed):

uvx woody-mcp

Get an API key

Email gsa@gunsmith.academy to request a wdy_ API key.

Tiers:

  • kb_only — Free. KB search only, no AI answers.

  • standard — $9/mo. Full AI answers, 30 req/min.

  • premium — $29/mo. AI answers + Ballistic Solver + legal engine, 60 req/min.

Claude Desktop setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "woody": {
      "command": "woody-mcp",
      "env": {
        "WOODY_API_KEY": "wdy_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. Woody's tools will appear automatically.

Claude Code setup

claude mcp add woody -- woody-mcp

Then set your key in your shell environment:

export WOODY_API_KEY=wdy_your_key_here

Tools

ask_woody

Ask Woody any firearms question. Returns an expert answer with citations and legal disclaimers where applicable.

question: str        — The firearms question (max 2000 chars)
state: str           — US state code for legal questions (e.g. "TX")
user_tier: str       — matches your API key tier: "free" (kb_only key),
                       "operator" (standard key), or "patriot"/"armorer" (premium key)

search_knowledge_base

Search Woody's verified KB directly. Pure vector retrieval, no AI inference, near-zero latency.

query: str    — Search query
top_k: int    — Number of results (1-10, default 3)

check_woody_status

Check Woody's current capabilities and KB version. No API key required.

Resources

  • woody://capabilities — Full tool manifest with input schemas

  • woody://supported-calibers — List of calibers Woody can analyze

License

MIT for the MCP client. The Woody API is proprietary.

Available Tools

3 tools
ask_woodyA

Ask Woody any firearms question and get an expert answer with citations.

Covers: builds, maintenance, legal/regulatory, ballistics, product specs, compatibility, NFA rules, state law, suppressor setups, and more.

Args: question: The firearms question (max 2000 characters). state: US state code for jurisdiction-specific legal answers (e.g. "TX", "CA"). Leave empty for general questions. user_tier: User tier — "free", "operator", "patriot", or "armorer". Affects answer depth and model selection.

Returns: Woody's expert answer. If a legal_disclaimer is present, surface it to the user — it means the answer touches on legal or regulatory content.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNo
questionYes
user_tierNooperator

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions returning expert answers with citations and handling legal disclaimers, but lacks details on latency, synchronous behavior, or any limitations. Basic behavior is clear but deeper transparency is missing.

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 and well-structured: a single-purpose opening sentence, a bullet list of covered topics, and a clear Args section. Every sentence adds value without redundancy.

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 tool has 3 parameters (0% schema coverage), no annotations, and an output schema, the description adequately covers parameters and return behavior (legal disclaimer handling). It could mention more about the output format, but the provided guidance is sufficient for agent invocation.

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?

Schema coverage is 0%, yet the description thoroughly explains all three parameters: question (max 2000 chars), state (US state for jurisdiction), and user_tier (values 'free', 'operator', 'patriot', 'armorer' affecting depth and model). This adds significant meaning 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 tool's function: 'Ask Woody any firearms question and get an expert answer with citations.' It distinguishes itself from siblings (check_woody_status and search_knowledge_base) by focusing on expert Q&A.

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 lists covered topics (builds, legal, etc.) implying appropriate use cases, but does not explicitly state when to use alternatives or when not to use this tool. With siblings available, explicit guidance would be helpful.

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

check_woody_statusA

Check Woody's current capabilities, KB version, and API status. Use this to verify the connection is working or to see what Woody supports.

Returns: Woody's name, version, available tools, and KB stats.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool is read-only and returns status information, which is sufficient. No side effects are implied, making it transparent.

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 very concise: two sentences plus a returns line. It is front-loaded with the main purpose 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 an output schema present, the description adequately explains what the tool returns and its purpose, making it complete for a status check tool.

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 schema covers 100% trivially. The description adds no parameter info, but per guidelines, 0 parameters yields a baseline of 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?

The description clearly states the tool checks Woody's capabilities, KB version, and API status. It uses a specific verb ('check') and resource ('Woody's status'), and distinguishes from siblings like 'ask_woody' and 'search_knowledge_base' which serve different purposes.

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 explicitly says to use this tool to verify connection or see what Woody supports. It does not mention when not to use it or provide alternatives, but the context of sibling tools implies differentiation.

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

search_knowledge_baseA

Search Woody's verified firearms knowledge base directly.

Pure vector retrieval — no AI inference, no extra token cost. Returns raw document chunks with relevance scores. Good for fact-checking, looking up specific specs, or finding source material before asking a follow-up question with ask_woody.

Args: query: Search query (e.g. "Geissele SSA-E trigger pull weight"). top_k: Number of results to return (1-10, default 3).

Returns: Matching knowledge base chunks with relevance scores and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

The description discloses key behavioral traits: it uses pure vector retrieval with no AI inference or extra token cost, and returns raw document chunks with relevance scores. While it covers the main behavior, it does not mention edge cases like empty results or error handling. Given no annotations, this is adequate but not exhaustive.

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 and well-structured. It uses a clear front-loaded sentence for purpose, then a brief explanation of benefits, followed by bullet-pointed args and returns. No redundant information.

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 tool's simplicity (2 parameters, no annotations, and an output schema), the description covers purpose, usage, parameter details, and return format. It does not discuss authentication or errors, but for a search tool this is sufficient.

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?

Schema coverage is 0%, but the description provides detailed examples and constraints for both parameters: query (with example 'Geissele SSA-E trigger pull weight') and top_k (range 1-10, default 3). This adds significant meaning beyond the schema titles.

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 tool's purpose: 'Search Woody's verified firearms knowledge base directly.' It specifies a verb (Search) and a resource (knowledge base), and distinguishes itself from sibling 'ask_woody' by noting it uses pure vector retrieval without AI inference.

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?

The description explicitly states when to use ('good for fact-checking, looking up specific specs, or finding source material') and when not to use it (before asking a follow-up question with ask_woody). It also names the alternative tool 'ask_woody'.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.3
    • First observedask_woody
    • First observedcheck_woody_status
    • First observedsearch_knowledge_base

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: ask_woody for asking questions, check_woody_status for system status, and search_knowledge_base for direct KB retrieval. There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores: ask_woody, check_woody_status, search_knowledge_base. The naming is predictable and readable.

Tool Count5/5

3 tools is appropriate for a specialized firearms assistant. It covers the essential interactions without excess or deficiency.

Completeness4/5

The tool set covers the core workflows: asking questions, checking system status, and searching the knowledge base. A minor gap is the lack of a tool to list available topics or help, but the overall surface is sufficient for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    D
    maintenance
    MCP server for Concierge, enabling AI agents to manage Discord customer support operations including tickets, AI, knowledge base, analytics, and more via natural language.
    7
    MIT
  • A
    license
    C
    quality
    F
    maintenance
    MCP server providing 22 tools to query Perplexity AI's premium models (GPT-5.4, Claude 4.7 Opus, etc.) with citations, source discovery, and rate limit checking for AI agents.
    23
    15
    MIT

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/Gunsmith-Academy/woody-mcp'

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