About GunsNPrices
GunsNPrices is a local, read-only MCP server for assistants handling firearm and ammunition listings. It parses product details, calculates ammunition cost per round, and links to GunsNPrices comparison pages without fetching live prices.
Key features
- 01Parse firearm and ammunition titles
- 02Identify brands and firearm models
- 03Normalize caliber names
- 04Calculate cost per round
- 05Find GunsNPrices comparison pages
- 06List supported brands and calibers
Use cases
- 01Clean product titles into structured fields
- 02Compare ammunition cost per round
- 03Identify a firearm from a listing
- 04Find pages for price comparisons
MCP support
Exposes read-only tools to MCP clients for parsing titles, identifying models and calibers, calculating per-round cost, and locating GunsNPrices comparison pages. It runs locally and works offline.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
6Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| brand | string | No | Manufacturer, if known (helps when the title doesn't name it) |
| price | number | No | Listing price in USD; for ammo it gives cost per round |
| title | string | Yes | Product title as a store shows it, e.g. 'Glock 19 Gen5 MOS 9mm 4.02in 15rd' |
Details
From the project READMEGunsNPrices MCP server
An MCP server that helps AI assistants with gun and ammo shopping questions. It reads firearm and ammunition product titles (brand, model, caliber, magazine capacity, barrel length, rounds per box), computes cost per round, and points to the GunsNPrices pages that compare current prices across 40+ US gun and ammo stores.
It runs locally and needs no API key: everything comes from the open-source gunsnprices parser and a snapshot of GunsNPrices page links. It does not fetch live prices; for "where is it cheapest" questions the assistant gets the GunsNPrices pages to send you to.
Tools
| Tool | What it does |
|---|---|
parse_product_title | Title → firearm or ammo, brand, model, calibers, magazine capacity, barrel length, rounds per box, cost per round, price comparison pages |
identify_firearm_model | Title or description → brand, model family, exact model (50 brands); decodes Glock part numbers |
lookup_caliber | 9mm Luger, 300 BLK, 12ga, 6.5 CM → standard caliber name, type and its ammo price page |
cost_per_round | Price + round count (or a title to read it from) → cost per round |
find_price_comparison_pages | Model, brand or caliber → GunsNPrices pages comparing current prices, most specific first |
list_supported | The 50 brands with model recognition, or the 293 known calibers |
All tools are read-only and work offline.
Install
The server is the npm package gunsnprices-mcp and runs with Node.js 18 or newer.
Claude Code
claude mcp add gunsnprices -- npx -y gunsnprices-mcp
Claude Desktop: add to claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"gunsnprices": {
"command": "npx",
"args": ["-y", "gunsnprices-mcp"]
}
}
}
Cursor: the same block in ~/.cursor/mcp.json.
VS Code: .vscode/mcp.json:
{
"servers": {
"gunsnprices": {
"type": "stdio",
"command": "npx",
"args": ["-y", "gunsnprices-mcp"]
}
}
}
Claude Desktop, one click: download gunsnprices-mcp-<version>.mcpb from the
latest release and open it (MCP Bundle, Node.js included
with Claude Desktop).
Docker:
docker build -t gunsnprices-mcp https://github.com/gunsnprices/gunsnprices-mcp.git
{
"mcpServers": {
"gunsnprices": { "command": "docker", "args": ["run", "-i", "--rm", "gunsnprices-mcp"] }
}
}
Things to ask
- "What exactly is a
G19 GEN5 9MM 4.02 15RD FS MOS, and where can I compare prices?" - "Which of these 9mm listings is cheapest per round: $18.99 for 50, $289 for 1,000, $13.49 for 20?"
- "Is
300 BLKthe same as.300 AAC Blackout? Where do I compare ammo prices for it?" - "Clean up this spreadsheet of gun titles into brand, model, caliber and barrel length."
Example result of find_price_comparison_pages for "Glock 19":
{
"query": "Glock 19",
"model": { "brand": "Glock", "family": "Glock 19", "model": "Glock 19", "generation": "", "configs": [], "features": [], "source": "title" },
"gunsnprices_pages": [
{ "kind": "model", "name": "Glock 19", "url": "https://gunsnprices.com/guns/glock-19" },
{ "kind": "brand", "name": "All Glock models", "url": "https://gunsnprices.com/glock-models" },
{ "kind": "search", "name": "GunsNPrices search: Glock 19", "url": "https://gunsnprices.com/en-search/?search=Glock%2019" }
]
}
Accuracy
The parsing is the gunsnprices library. On 63,755 listings from 40+ stores it recognizes the same model as gunsnprices.com in 99.97% of cases where the site knows the model, and gets the caliber right in 97.8% of firearm and 94.9% of ammo titles where it finds one. Details are in the library's README.
Related
- Parser library: npm, PyPI
- Open datasets of calibers and models: Hugging Face, GitHub, Kaggle
License
The code is under the MIT License. The page links in src/data/ come from the GunsNPrices
firearm-models dataset and are under
CC BY 4.0: credit GunsNPrices (gunsnprices.com) with a link.
Questions and corrections: open an issue or write to [email protected].
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.