Skip to main content
Glama

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

Search filaments by name, material, manufacturer, color

get_filament

Get full specs for a specific filament

list_manufacturers

Browse manufacturers with filament counts

list_materials

Browse material types with counts

get_material_profile

Authoritative properties for a material type

compare_materials

Side-by-side comparison of 2-3 materials

recommend_material

Get ranked recommendations for your requirements

diagnose_print_issue

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 tools
compare_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
materialsYesArray of 2-3 material type names to compare (e.g., ["PLA", "PETG", "ABS"])

TDQS

A3.7/5.0
Behavior3/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 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symptomYesThe print issue symptom (e.g., "stringing", "warping", "layer_adhesion", "clogging", "elephant_foot")
materialNoMaterial type for material-specific diagnosis (e.g., "PLA", "PETG")

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoFilament 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).
nameNoFilament name. Accepts the bare name field (e.g. "Jade White"), or a full display label like "[ID 1234] Bambu Lab — PLA — Jade White".
manufacturerNoOptional disambiguator when looking up by name.
materialNoOptional material disambiguator when looking up by name (e.g. "PLA", "PETG").

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
materialYesMaterial type name (e.g., "PLA", "PETG", "ABS", "TPU")

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
materialNoFilter to manufacturers that produce this material type (e.g., "PLA", "PETG")

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requirementsYesProject requirements for material selection

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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").

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch text (filament name, material, manufacturer, or color)
materialNoFilter by material type (e.g., "PLA", "PETG", "ABS")
manufacturerNoFilter by manufacturer name
diameterNoFilter by filament diameter in mm (1.75 or 2.85)
limitNoMax results (1-100, default 20)
offsetNoPagination offset

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

A4.2/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    112
    230
    GPL 2.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    An 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
  • A
    license
    B
    quality
    B
    maintenance
    Open-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.
    468
    52
    AGPL 3.0

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/3dprint-oracle'

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