woody-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@woody-mcpWhat are California's magazine capacity limits?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpOr with uvx (no install needed):
uvx woody-mcpGet 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-mcpThen set your key in your shell environment:
export WOODY_API_KEY=wdy_your_key_hereTools
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 schemaswoody://supported-calibers— List of calibers Woody can analyze
License
MIT for the MCP client. The Woody API is proprietary.
Available Tools
3 toolsask_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.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| question | Yes | ||
| user_tier | No | operator |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
3 tool updates
v1.0.3- First observed
ask_woody - First observed
check_woody_status - First observed
search_knowledge_base
TDQS
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.
All tools follow a consistent verb_noun pattern with underscores: ask_woody, check_woody_status, search_knowledge_base. The naming is predictable and readable.
3 tools is appropriate for a specialized firearms assistant. It covers the essential interactions without excess or deficiency.
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
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
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for building and testing AI agents with multi-model experimentation and insights.
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseAqualityCmaintenanceAI-ready MCP server that gives assistants real-time access to the Gunsnation firearms catalog.2692MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Concierge, enabling AI agents to manage Discord customer support operations including tickets, AI, knowledge base, analytics, and more via natural language.7MIT
- AlicenseAqualityCmaintenanceMCP server for ffl. Let AI share anything for you.103Apache 2.0
- AlicenseCqualityFmaintenanceMCP 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.2315MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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