{"name":"com.dynomatix/company","slug":"dynomatix-company","title":"Dynomatix","description":"Enquiries for Dynomatix, a software practice.","url":"https://mcp.market/server/dynomatix-company","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T06:10:49.931Z","last_ok_at":"2026-09-24T06:10:49.931Z","latency_ms":70},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://dynomatix.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://dynomatix.com/mcp"}],"packages":[],"tools":[{"name":"dynomatix_about","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","additionalProperties":false}},{"name":"dynomatix_get_position","description":"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.","write_action":false,"price_micros":0,"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}},{"name":"dynomatix_get_work","description":"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.","write_action":false,"price_micros":0,"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}},{"name":"dynomatix_list_open_positions","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","additionalProperties":false}},{"name":"dynomatix_list_work","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","additionalProperties":false}},{"name":"dynomatix_submit_application","description":"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.","write_action":true,"price_micros":0,"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 name@example.com. 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}},{"name":"dynomatix_submit_enquiry","description":"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.","write_action":true,"price_micros":0,"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 name@example.com. 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}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-23T11:54:41.157Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T11:54:41.126Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 451ms"]},"poisoning":{"score":15,"max":15,"notes":["7 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://dynomatix.com/mcp","reachable":true,"authRequired":false,"latencyMs":451,"serverInfo":{"name":"com.dynomatix/company","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://dynomatix.com/assets/favicon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}