Koskamo

Maker Machines Atlas MCP

A public read-only MCP server providing tools for desktop fabrication machine research, including filtering catalogs, comparing specifications, finding buying options, and calculating setup costs, payback periods, and material suitability.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Maker Machines Atlas MCP logo, by Maker Machines AtlasCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Maker Machines Atlas
MCP endpoint (Streamable HTTP)
https://makermachinesatlas.com/mcp
Vendor documentation

What you can do with it

  • Filter machines by category, material, budget, and market
  • Compare specifications of 2-4 distinct machines
  • Find retailer links and disclosures for a specific machine
  • Calculate laser setup costs and Etsy payback periods

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
maker-machines-atlas 1.0.0
MCP protocol
2025-06-18
Tools
7 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only research and planning tools. Ask for missing costs, buyer country and currency. Never infer stock, prices, fees, safety or compatibility. Preserve sources, verification dates and affiliate disclosures. This is not an ACP checkout service.

Tools

7 advertised

find_machines
Advertised by the server during the last successful anonymous check.
Advertised read-only

Filter researched machines by process, material/use, reference budget, buying-link market and workshop requirements. Unknown requirements do not satisfy explicit filters. Market links do not imply stock.

find_machines input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1
    },
    "scale": {
      "enum": [
        "small",
        "medium",
        "large"
      ],
      "type": "string"
    },
    "market": {
      "enum": [
        "US",
        "CA",
        "GB",
        "IE",
        "BE",
        "NL",
        "JP",
        "DE",
        "FR",
        "IT",
        "ES",
        "PL",
        "SE"
      ],
      "type": "string"
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 1000,
      "minimum": 0
    },
    "search": {
      "type": "string",
      "maxLength": 120
    },
    "category": {
      "enum": [
        "3d-scanner",
        "3d-printer",
        "resin-printer",
        "uv-printer",
        "desktop-cnc",
        "diode-laser",
        "co2-laser",
        "fiber-laser",
        "hybrid",
        "cutting-plotter",
        "vacuum-former",
        "sublimation-printer"
      ],
      "type": "string"
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "JPY",
        "PLN",
        "SEK"
      ],
      "type": "string",
      "default": "USD",
      "description": "All input money amounts must already be in this currency; no conversion."
    },
    "enclosed": {
      "type": "boolean"
    },
    "language": {
      "enum": [
        "en",
        "nl",
        "ja",
        "de",
        "fr",
        "it",
        "es",
        "pl",
        "sv"
      ],
      "type": "string",
      "default": "en"
    },
    "material": {
      "type": "string",
      "maxLength": 120
    },
    "software": {
      "type": "string",
      "maxLength": 120
    },
    "minPowerW": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "production": {
      "enum": [
        "hobby",
        "education",
        "prototyping",
        "small-batch"
      ],
      "type": "string"
    },
    "ventilation": {
      "enum": [
        "not-required",
        "recommended",
        "required"
      ],
      "type": "string"
    },
    "minWorkWidthMm": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "maxReferencePrice": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    }
  },
  "additionalProperties": false
}
find_machines annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_machines
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compare two to four known machine IDs using dated specifications, setup requirements, strengths, limitations and sources. No overall score or invented compatibility.

compare_machines input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "machineIds"
  ],
  "properties": {
    "language": {
      "enum": [
        "en",
        "nl",
        "ja",
        "de",
        "fr",
        "it",
        "es",
        "pl",
        "sv"
      ],
      "type": "string",
      "default": "en"
    },
    "machineIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-z0-9-]+$",
        "maxLength": 100
      },
      "maxItems": 4,
      "minItems": 2
    }
  },
  "additionalProperties": false
}
compare_machines annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_buying_options
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read existing retailer links for one machine and an explicitly chosen buyer country. Includes affiliate disclosures and dated observations; never purchases or confirms live stock.

get_buying_options input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "machineId",
    "market"
  ],
  "properties": {
    "market": {
      "enum": [
        "US",
        "CA",
        "GB",
        "IE",
        "BE",
        "NL",
        "JP",
        "DE",
        "FR",
        "IT",
        "ES",
        "PL",
        "SE"
      ],
      "type": "string"
    },
    "language": {
      "enum": [
        "en",
        "nl",
        "ja",
        "de",
        "fr",
        "it",
        "es",
        "pl",
        "sv"
      ],
      "type": "string",
      "default": "en"
    },
    "machineId": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 100
    }
  },
  "additionalProperties": false
}
get_buying_options annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
calculate_laser_setup
Advertised by the server during the last successful anonymous check.
Advertised read-only

Add a user-supplied machine quote and explicitly selected accessory costs in one currency. Include all eight checklist entries; use null for an unknown cost, not an assumed zero.

calculate_laser_setup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "currency",
    "machinePrice",
    "accessories"
  ],
  "properties": {
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "JPY",
        "PLN",
        "SEK"
      ],
      "type": "string",
      "description": "All input money amounts must already be in this currency; no conversion."
    },
    "machineId": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 100
    },
    "accessories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "included",
          "cost"
        ],
        "properties": {
          "id": {
            "enum": [
              "extraction",
              "airAssist",
              "rotary",
              "fireSafety",
              "materials",
              "software",
              "shipping",
              "other"
            ],
            "type": "string"
          },
          "cost": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 1000000000,
                "minimum": 0,
                "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
              },
              {
                "type": "null"
              }
            ]
          },
          "included": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "maxItems": 8,
      "minItems": 8
    },
    "machinePrice": {
      "type": "number",
      "maximum": 1000000000,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost.",
      "exclusiveMinimum": 0
    }
  },
  "additionalProperties": false
}
calculate_laser_setup annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
calculate_maker_price
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculate a starting selling price from explicit per-item costs, machine/hands-on minutes, hourly costs, user-supplied fees and a profit buffer. No fee lookup or currency conversion.

calculate_maker_price input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "currency",
    "material",
    "packaging",
    "other",
    "machineMinutes",
    "runningCost",
    "labourMinutes",
    "hourlyPay",
    "feePercent",
    "feeFixed",
    "bufferPercent"
  ],
  "properties": {
    "other": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "JPY",
        "PLN",
        "SEK"
      ],
      "type": "string",
      "description": "All input money amounts must already be in this currency; no conversion."
    },
    "feeFixed": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "material": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "hourlyPay": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "packaging": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "feePercent": {
      "type": "number",
      "maximum": 95,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "runningCost": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "bufferPercent": {
      "type": "number",
      "maximum": 95,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "labourMinutes": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Minutes per item, explicitly provided by the user."
    },
    "machineMinutes": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Minutes per item, explicitly provided by the user."
    }
  },
  "additionalProperties": false
}
calculate_maker_price annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
calculate_etsy_payback
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calculate profit, break-even sales/months and capacity from explicit user inputs. No tax or wage deduction; no predicted sales or prefilled Etsy fees.

calculate_etsy_payback input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "currency",
    "investment",
    "price",
    "material",
    "packaging",
    "otherCost",
    "feePercent",
    "feeFixed",
    "machineMinutes",
    "runningCost",
    "labourMinutes",
    "perMonth",
    "machineHours"
  ],
  "properties": {
    "price": {
      "type": "number",
      "maximum": 1000000000,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost.",
      "exclusiveMinimum": 0
    },
    "currency": {
      "enum": [
        "USD",
        "EUR",
        "GBP",
        "CAD",
        "AUD",
        "JPY",
        "PLN",
        "SEK"
      ],
      "type": "string",
      "description": "All input money amounts must already be in this currency; no conversion."
    },
    "feeFixed": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "material": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "perMonth": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "User sales assumption; zero means months cannot be estimated."
    },
    "otherCost": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "packaging": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "feePercent": {
      "type": "number",
      "maximum": 100,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "investment": {
      "type": "number",
      "maximum": 1000000000,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost.",
      "exclusiveMinimum": 0
    },
    "runningCost": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Explicit user-provided non-negative amount. Use zero only when the user confirms no cost."
    },
    "machineHours": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Available machine hours per month; zero means capacity is unknown."
    },
    "labourMinutes": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Minutes per item, explicitly provided by the user."
    },
    "machineMinutes": {
      "type": "number",
      "maximum": 1000000000,
      "minimum": 0,
      "description": "Minutes per item, explicitly provided by the user."
    }
  },
  "additionalProperties": false
}
calculate_etsy_payback annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_laser_material
Advertised by the server during the last successful anonymous check.
Advertised read-only

Return the existing cautious source-level laser/material/task guidance and sources. Unknown material means stop. This is not certification of safety or exact machine compatibility.

find_laser_material input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "material",
    "task"
  ],
  "properties": {
    "task": {
      "enum": [
        "cut",
        "mark"
      ],
      "type": "string"
    },
    "material": {
      "enum": [
        "wood",
        "leather",
        "dark-acrylic",
        "clear-acrylic",
        "coated-metal",
        "bare-metal",
        "paper",
        "unknown"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
find_laser_material annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
275 ms
95th percentile latency
275 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 275 ms · metadata changed · 7 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http maker-machines-atlas-mcp https://makermachinesatlas.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add maker-machines-atlas-mcp --url https://makermachinesatlas.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable maker-machines-atlas-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "maker-machines-atlas-mcp": {
      "url": "https://makermachinesatlas.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "maker-machines-atlas-mcp": {
      "type": "streamableHttp",
      "url": "https://makermachinesatlas.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start maker-machines-atlas-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "maker-machines-atlas-mcp": {
      "type": "http",
      "url": "https://makermachinesatlas.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http maker-machines-atlas-mcp https://makermachinesatlas.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "maker-machines-atlas-mcp": {
      "url": "https://makermachinesatlas.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "maker-machines-atlas-mcp": {
      "serverUrl": "https://makermachinesatlas.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Maker Machines Atlas MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.