3dprint-oracle
3dprint-oracle is a 3D printing knowledge MCP server that gives LLMs authoritative access to 7,000+ filaments from 53 manufacturers across 33 material types, plus curated material science data — no API keys or network calls required at runtime.
Search filaments: Search by name, material type, manufacturer, or color, with filtering by diameter and pagination support.
Get filament details: Retrieve full specifications for a specific filament by ID or exact name, including temperatures, density, weight, colors, and manufacturer details.
Browse manufacturers: List all 53 filament manufacturers with filament counts, optionally filtered by material type.
Browse material types: List all 33 material types (PLA, PETG, ABS, TPU, Nylon, etc.) with filament counts and typical print settings.
Get material profiles: Get a detailed material science profile including strength, flexibility, UV resistance, food safety, moisture sensitivity, difficulty level, typical uses, pros/cons, and nozzle requirements.
Compare materials: Side-by-side comparison of 2–3 materials across all properties to help decide which material suits a project best.
Recommend materials: Get ranked material recommendations based on project requirements such as strength, flexibility, heat resistance, food safety, outdoor use, ease of printing, and budget.
Diagnose print issues: Troubleshoot 3D printing problems by symptom (e.g., stringing, warping, clogging), receiving ranked probable causes and material-specific fixes.
3dprint-oracle
3D printing filament and materials knowledge MCP server. Gives LLMs authoritative access to 7,000+ filaments and curated material science knowledge.
Features
7,000+ filaments from SpoolmanDB (53 manufacturers, 33 material types)
Material science knowledge — properties, troubleshooting, recommendations
8 MCP tools — search, lookup, compare, recommend, diagnose
Embedded data — no API keys, no network calls at runtime
Related MCP server: MCP 3D Printer Server
Installation
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"3dprint-oracle": {
"command": "npx",
"args": ["-y", "3dprint-oracle"]
}
}
}Tools
Tool | Description |
| Search filaments by name, material, manufacturer, color |
| Get full specs for a specific filament |
| Browse manufacturers with filament counts |
| Browse material types with counts |
| Authoritative properties for a material type |
| Side-by-side comparison of 2-3 materials |
| Get ranked recommendations for your requirements |
| Troubleshoot print problems with material-specific fixes |
Data Sources
Filament data: SpoolmanDB (MIT license)
Material knowledge: Hand-curated from authoritative 3D printing references
License
MIT
Available Tools
8 toolscompare_materialsCompare MaterialsA
Compare 2-3 material types side by side across all properties: strength, flexibility, heat resistance, food safety, print difficulty, and more. Useful for deciding which material to use for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| materials | Yes | Array of 2-3 material type names to compare (e.g., ["PLA", "PETG", "ABS"]) |
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 the comparison covers 'all properties' and lists examples, but does not disclose data source, whether results are static or dynamic, or any limitations.
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 a single concise sentence that effectively communicates the tool's purpose and key details without unnecessary words. It is well-structured and easy to parse.
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?
For a comparison tool, the description lacks details on the output format (e.g., table, scores) and does not explain how results are presented. Given no output schema, more context on the output would be beneficial.
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?
The input schema has 100% description coverage, providing clear details on the parameter (array of 2-3 material names). The description adds context about comparing across properties but does not add significant new 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 compares 2-3 material types across specific properties, using a specific verb and resource. It distinguishes from sibling tools like recommend_material or get_material_profile by focusing on side-by-side comparison.
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 implies usage for deciding which material to use but does not explicitly state when not to use it or mention alternative tools like recommend_material that might be more suitable for open-ended recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_print_issueDiagnose Print IssueA
Diagnose a 3D printing problem by symptom. Returns possible causes ranked by probability, with specific fixes for each. Optionally filter by material type for material-specific troubleshooting.
| Name | Required | Description | Default |
|---|---|---|---|
| symptom | Yes | The print issue symptom (e.g., "stringing", "warping", "layer_adhesion", "clogging", "elephant_foot") | |
| material | No | Material type for material-specific diagnosis (e.g., "PLA", "PETG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that results are ranked by probability and include specific fixes, and mentions optional material filtering. This is sufficient for a read-only diagnostic tool.
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?
Two efficient sentences with front-loaded action and output description. No redundant or extraneous 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 annotations and output schema, the description covers purpose, output, and optional filtering. It could mention output format or read-only nature, but for a simple tool it is fairly complete.
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 100% with adequate descriptions for both parameters. The description reiterates the optional material filter but does not add new meaning beyond the schema. Baseline of 3 is appropriate.
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 diagnoses 3D printing problems by symptom, returning ranked causes and fixes. It distinguishes itself from sibling tools, which are all material-related, by focusing on diagnosis.
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 implicitly indicates use when troubleshooting a specific symptom. It does not explicitly state when not to use or name alternatives, but the context is clear given sibling tools cover separate material functions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filamentGet FilamentA
Get detailed information about a specific filament. Prefer lookup by ID (the [ID ] value returned by search_filaments) — that is the only unambiguous key. Name lookups are accepted but many filaments share the same name (e.g. "Black", "Jade White") because SpoolmanDB names are often colour-only; if a name is ambiguous you will get back a disambiguation list with IDs. You can pass manufacturer and material alongside name to narrow the match, or pass the full search_filaments display label (e.g. "[ID 1234] Bambu Lab — PLA — Jade White") in the name field and it will be parsed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Filament ID (preferred — copy the [ID N] value from search_filaments). Accepts either a number or a numeric string (LLM clients often serialise IDs as strings). | |
| name | No | Filament name. Accepts the bare name field (e.g. "Jade White"), or a full display label like "[ID 1234] Bambu Lab — PLA — Jade White". | |
| manufacturer | No | Optional disambiguator when looking up by name. | |
| material | No | Optional material disambiguator when looking up by name (e.g. "PLA", "PETG"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It transparently explains behavior for name ambiguity (returns disambiguation list), and that it can parse display labels. However, it does not explicitly state whether the tool is read-only or idempotent.
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 yet informative, with no wasted sentences. It front-loads the purpose and efficiently covers usage nuances, disambiguation, and parsing logic.
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?
The description covers the main use case and ambiguity handling well. However, it lacks details on the output format beyond mentioning a 'disambiguation list with IDs.' Since no output schema exists, describing the return structure would improve completeness.
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 100% with descriptions for each parameter. The description adds significant context beyond the schema, such as the disambiguation behavior and that id accepts numeric strings, making it more helpful for correct invocation.
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 'Get detailed information about a specific filament,' with a specific verb and resource. It distinguishes from sibling tools like search_filaments which lists filaments, and get_material_profile which provides material profiles.
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 provides explicit guidance: prefer lookup by ID, explains why name lookups can be ambiguous, and suggests using disambiguators like manufacturer and material. It also explains that ambiguous names return a disambiguation list, helping the agent decide when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_material_profileGet Material ProfileA
Get a detailed material science profile for a specific material type. Includes strength, flexibility, UV resistance, food safety, moisture sensitivity, difficulty level, typical uses, pros/cons, and nozzle requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| material | Yes | Material type name (e.g., "PLA", "PETG", "ABS", "TPU") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided; the description does not disclose if the operation is read-only, requires authentication, or has side effects. It only lists output fields, lacking behavioral context such as safety or idempotency.
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 two sentences, front-loading the purpose and following with key contents. Every sentence adds value with no 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 absence of an output schema, the description adequately outlines the profile contents. However, it could mention error handling or required permissions to be fully complete.
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?
The input schema has 100% description coverage for the single parameter 'material', with a clear description. The tool description adds examples but does not significantly extend 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 retrieves a detailed material science profile for a specific material type, listing specific properties. It is distinct from sibling tools like list_materials (which lists available materials) and compare_materials (which compares multiple materials).
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 does not explicitly state when to use this tool versus alternatives. While it implies use when a detailed profile of a single material is needed, no guidance on exclusions or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_manufacturersList ManufacturersA
List all filament manufacturers in the database, with filament counts. Optionally filter to manufacturers that produce a specific material type.
| Name | Required | Description | Default |
|---|---|---|---|
| material | No | Filter to manufacturers that produce this material type (e.g., "PLA", "PETG") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It implies a read operation but doesn't disclose limits, pagination, or authentication. Adequate for a simple list tool.
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?
Two concise sentences, front-loaded with main action. No extraneous 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?
For a simple list tool with one optional parameter and no output schema, the description fully covers what the tool does and how to use it.
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?
Single parameter 'material' with schema description 'Filter to manufacturers that produce this material type'. Description adds examples 'PLA', 'PETG', enhancing clarity beyond 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?
Description clearly states the verb 'list' and resource 'all filament manufacturers', with added detail 'with filament counts' and optional filter. It distinguishes from siblings like 'list_materials' and 'get_filament'.
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?
No explicit when or when-not to use, nor alternatives. The usage is implied from the description, but not guided for complex scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_materialsList MaterialsA
List all material types available in the database (PLA, PETG, ABS, TPU, Nylon, etc.) with filament counts and typical print settings. No inputs required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description implies a read-only list operation. It does not explicitly state no side effects, but the verb 'list' and examples of returned data make behavior sufficiently clear.
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?
Two concise sentences, front-loading the purpose. Every word adds value with no 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 no annotations or output schema, the description adequately describes return content (material types, counts, settings). It could mention use case or format, but is sufficient for a simple list 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?
No parameters exist, so schema coverage is 100%. The description adds value by stating 'No inputs required', confirming the simplicity.
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 uses specific verb 'list' and resource 'material types' with concrete examples (PLA, PETG, etc.) and states it returns filament counts and print settings. This clearly distinguishes it from siblings like 'get_material_profile' or 'recommend_material'.
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?
It explicitly states 'No inputs required', making it clear when to invoke. However, it does not contrast with siblings or mention when not to use it, which would push it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_materialRecommend MaterialA
Recommend the best 3D printing material based on project requirements. Describe what you need (strength, flexibility, heat resistance, food safety, outdoor use, ease of printing, budget) and get ranked material suggestions with explanations.
| Name | Required | Description | Default |
|---|---|---|---|
| requirements | Yes | Project requirements for material selection |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the output will be 'ranked material suggestions with explanations', which is transparent about the behavior. No contradictions or omissions.
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?
Two sentences front-load the purpose and usage. Every word is meaningful with no redundancy or filler.
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 single nested parameter with full schema descriptions and no output schema, the description adequately covers input expectations and output format (ranked suggestions with explanations). No critical missing info.
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 description coverage is 100%, so baseline is 3. The description adds natural language listing of the requirement properties, but does not provide additional meaning beyond what the schema already describes.
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 verb 'recommend' and the resource '3D printing material based on project requirements', which distinguishes it from sibling tools that list, compare, or search materials.
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 implies when to use the tool: when you have project requirements and need a recommendation. It lists the criteria to describe, providing clear context, but does not explicitly mention when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filamentsSearch FilamentsA
Search 7,000+ 3D printing filaments by name, material type, manufacturer, or color. Each result is prefixed with [ID ] — pass that ID to get_filament for full specs (the ID is the only unambiguous lookup key, since many filaments share names like "Black" or "Jade White").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text (filament name, material, manufacturer, or color) | |
| material | No | Filter by material type (e.g., "PLA", "PETG", "ABS") | |
| manufacturer | No | Filter by manufacturer name | |
| diameter | No | Filter by filament diameter in mm (1.75 or 2.85) | |
| limit | No | Max results (1-100, default 20) | |
| offset | No | Pagination offset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must compensate. It discloses the result format (ID prefix) and the importance of ID as the unique key. However, it does not mention pagination behavior (limit/offset) or that results may be extensive. 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?
Two concise sentences: the first states purpose and scope, the second provides critical usage guidance. No wasted words, excellent front-loading.
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 output schema, the description explains the result format (ID prefix) and connections to sibling tools. It covers search capabilities and limitations (shared names). Lacks mention of pagination or result content beyond ID, but sufficient for a search function.
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?
Input schema covers all 6 parameters with description coverage 100%. The description adds value by explaining the [ID <n>] prefix and why it's critical for further lookups, which is beyond the schema. This aids correct parameter interpretation.
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 explicitly states the tool searches 7,000+ filaments by multiple criteria (name, material, manufacturer, color), clearly distinguishing it from sibling tools like get_filament, list_materials, and list_manufacturers.
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 advises using get_filament with the returned ID for full specs and explains why the ID is necessary (shared names). It implicitly tells when to use this tool (search) versus when to use get_filament (retrieve details). No explicit 'when not to use,' but clear context suffices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct purpose: comparing materials, diagnosing issues, retrieving filament details, getting material profiles, listing manufacturers, listing materials, recommending materials, and searching filaments. No overlap in functionality.
All tools follow a consistent verb_noun pattern with snake_case (e.g., compare_materials, diagnose_print_issue, get_filament). No mixed conventions or irregular names.
With 8 tools, the server covers the core needs of a 3D printing materials oracle without being excessive or insufficient. The count is well-scoped for the domain.
The tool surface covers searching, retrieving details, comparing, diagnosing, and recommending. Minor gaps such as direct print setting retrieval per filament are mitigated by get_filament and get_material_profile. Overall, it's comprehensive for a read-only informational service.
Maintenance
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for SecretiveShell/Awesome-llms-txt. Add documentation directly into your conversation via MCP resources.25MIT
- AlicenseNot gradedqualityBmaintenanceEnables interaction with 3D printer management systems through an MCP server, supporting STL file manipulation, slicing, and control of printers like OctoPrint, Klipper, Duet, and more.112230GPL 2.0
- FlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI assistants to control and monitor Klipper 3D printers via the Moonraker API. It supports comprehensive printer management, including G-code execution, toolchanger operations, and real-time status monitoring.19
- AlicenseBqualityBmaintenanceOpen-source MCP server that lets AI agents control 3D printers. 353 tools for OctoPrint, Moonraker, Bambu Lab, Prusa Link, and Elegoo — search model marketplaces, generate 3D models from text, slice STL files, queue prints, monitor with camera vision, and manage multi-printer fleets. Install via pip install kiln3d.46852AGPL 3.0
Appeared in Searches
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/gregario/3dprint-oracle'
If you have feedback or need assistance with the MCP directory API, please join our Discord server