Dynomatix

Enquiries for Dynomatix, a software practice.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
70%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,131Tokens (tool definitions)
~2.4 KBTypical response size
Moderate attention impact (1.66% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "company": {
      "url": "https://dynomatix.com/mcp"
    }
  }
}

Remote endpoints

https://dynomatix.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡dynomatix_list_open_positions

List every role Dynomatix is currently hiring for. Returns one entry per position with its slug, title, one-line summary, employment type, canonical URL and posting dates. Start here before dynomatix_get_position or dynomatix_submit_application: the slug this returns is the value both of them expect. An empty list means there are no openings right now, not that the lookup failed. Takes no arguments.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "positions": {
      "type": "array",
      "description": "Open roles, in the order the site lists them.",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Identifier for dynomatix_get_position and the `position` argument of dynomatix_submit_application."
          },
          "role": {
            "type": "string",
            "description": "The role's title."
          },
          "url": {
            "type": "string",
            "description": "Path to the posting on dynomatix.com."
          },
          "summary": {
            "type": "string",
            "description": "One-line description of the role."
          },
          "employmentType": {
            "type": "string",
            "description": "Full-time, contract, and so on."
          },
          "datePosted": {
            "type": "string",
            "description": "ISO 8601 date."
          },
          "validThrough": {
            "type": "string",
            "description": "ISO 8601 date."
          }
        },
        "required": [
          "slug",
          "role",
          "url"
        ]
      }
    }
  },
  "required": [
    "positions"
  ]
}
🟡dynomatix_get_position(slug)

Read one job posting in full: responsibilities, requirements and how the role is set up. Returns the posting's own markdown, frontmatter included — the title and canonical URL it opens with are the citation to quote when you tell someone about the role. Call dynomatix_list_open_positions first to get a valid slug; a slug that is not currently open is refused rather than guessed at.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The position's slug, exactly as dynomatix_list_open_positions returned it. Lowercase letters, digits and hyphens.",
      "maxLength": 81
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟡dynomatix_submit_application(position, name, email, phone, portfolio, ...)

Submit a job application to Dynomatix, résumé included. This is final: it delivers straight to a monitored human inbox and cannot be edited, recalled or deleted afterwards. Confirm the details with the person you are acting for before you call it, and do not call it twice for the same submission — a retry sends a second copy. Set `position` to a slug from dynomatix_list_open_positions. Supply the résumé exactly one of two ways: `resume_url`, an https link that downloads the file itself (a sharing page from a drive or a document service is not a direct link and will be refused), or `resume_base64` together with `resume_filename`. Supplying both, or neither, is refused. The résumé must be a PDF, DOC or DOCX file under 5 MB; its contents are checked against its extension, so a renamed file is refused too. Nothing is stored until every field passes, and the reply confirms receipt with a submission id worth quoting in any follow-up — it never returns the résumé or a link to it.

Input Schema

{
  "type": "object",
  "properties": {
    "position": {
      "type": "string",
      "description": "Slug of the role, from dynomatix_list_open_positions. A role that is not on that list is not accepting applications.",
      "maxLength": 81
    },
    "name": {
      "type": "string",
      "description": "The applicant's full name.",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "description": "The applicant's email address, in the form [email protected]. This is the only way they will be contacted, so check it before sending.",
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "description": "Optional. The applicant's phone number.",
      "maxLength": 40
    },
    "portfolio": {
      "type": "string",
      "description": "Optional. A full web address starting with http:// or https:// — a portfolio, GitHub profile or personal site.",
      "maxLength": 300
    },
    "letter": {
      "type": "string",
      "description": "Optional cover letter. Newlines are preserved.",
      "maxLength": 10000
    },
    "resume_url": {
      "type": "string",
      "description": "An https URL that downloads the résumé file directly. Not a sharing or preview page — the response must be the file itself. Use this OR resume_base64, never both. http:// is refused, as are hostnames that resolve inside a private network."
    },
    "resume_base64": {
      "type": "string",
      "description": "The résumé's bytes, base64-encoded. Use this OR resume_url, never both. Requires resume_filename. Payloads over 5 MB are refused before they are decoded."
    },
    "resume_filename": {
      "type": "string",
      "description": "Required with resume_base64: it is the only source of the file's extension, which must be one of PDF, DOC or DOCX. Optional with resume_url, where the URL's last path segment is used instead."
    }
  },
  "required": [
    "position",
    "name",
    "email"
  ],
  "additionalProperties": false
}
🟡dynomatix_list_work

List the products and client work Dynomatix has shipped. Returns one entry per item with its name, the year it started, its status, a short description and its links. Retired items are included — the site shows them and `status` says which is which — because a track record with the failures removed is not a track record. Where `caseStudyUrl` is not null, dynomatix_get_work will return the full write-up for that slug. Takes no arguments.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "work": {
      "type": "array",
      "description": "Products and engagements, in the order the site lists them.",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Identifier for dynomatix_get_work."
          },
          "name": {
            "type": "string"
          },
          "since": {
            "type": "string",
            "description": "The year the work began."
          },
          "status": {
            "type": "string",
            "description": "Whether the item is live, retired, and so on."
          },
          "description": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "description": "The product's own address."
          },
          "linkLabel": {
            "type": "string"
          },
          "caseStudyUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Null when no case study has been written."
          },
          "markdownUrl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Null when no case study has been written."
          }
        },
        "required": [
          "slug",
          "name"
        ]
      }
    }
  },
  "required": [
    "work"
  ]
}
🟡dynomatix_get_work(slug)

Read one case study in full: what the problem was, what was built and what it changed. Returns the study's own markdown, frontmatter included — the title and canonical URL it opens with are the citation to quote. Call dynomatix_list_work first for a valid slug; only entries whose `caseStudyUrl` is not null have a write-up to return.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The item's slug, exactly as dynomatix_list_work returned it. Lowercase letters, digits and hyphens.",
      "maxLength": 81
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟡dynomatix_submit_enquiry(name, email, company, brief, timeline)

Send a project enquiry to Dynomatix — the same form the site's enquiry page submits. This is final: it delivers straight to a monitored human inbox and cannot be edited, recalled or deleted afterwards. Confirm the details with the person you are acting for before you call it, and do not call it twice for the same submission — a retry sends a second copy. Give the company or product website in `company` (a bare hostname like example.com is fine) and say what needs building in `brief`. Nothing is stored: the enquiry becomes an email and nothing else. Ask for a budget on the call, not here — this form does not collect one.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The enquirer's full name.",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "description": "The enquirer's email address, in the form [email protected]. This is the only address the reply can go to.",
      "maxLength": 254
    },
    "company": {
      "type": "string",
      "description": "The company or product website. A bare hostname is accepted and https is assumed; anything that is not a web address is refused.",
      "maxLength": 300
    },
    "brief": {
      "type": "string",
      "description": "What needs building, in the enquirer's own words. Newlines are preserved. There is no minimum — a single line is a fine enquiry.",
      "maxLength": 50000
    },
    "timeline": {
      "type": "string",
      "enum": [
        "exploring",
        "this-quarter",
        "already-started"
      ],
      "description": "Optional. One of: exploring (Exploring), this-quarter (This quarter), already-started (Already started and stuck). Omit it if unknown — blank is valid, a value outside this list is not."
    }
  },
  "required": [
    "name",
    "email",
    "company",
    "brief"
  ],
  "additionalProperties": false
}
🟡dynomatix_about

Who Dynomatix is, what it sells and how to reach it. Returns the company's identity and tagline, its engagement types, both contact addresses, its key pages and its track record. Read this first if you are deciding whether this company fits a need; use dynomatix_submit_enquiry to start a conversation. Takes no arguments.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "identity": {
      "type": "object",
      "description": "Name, legal name, URL, tagline, description, founding year."
    },
    "engagements": {
      "type": "array",
      "description": "The kinds of work Dynomatix takes on.",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "contact": {
      "type": "object",
      "description": "General and hiring email addresses, and the enquiry page."
    },
    "keyPages": {
      "type": "array",
      "description": "Labelled links to the pages worth reading next.",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      }
    },
    "proof": {
      "type": "object",
      "description": "Years active, products shipped, how many are still live."
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools