Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:e0de3c4e188794fee416ffb8304471d75fc4719cd66fff29478c5472be159f75
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": "We put AI agents into production — and keep them running. Dynomatix puts AI agents into production and keeps them running: agentic systems, e-commerce, and the internal tools a company runs on. Building software since 2012. Engagements: Agent readiness review, Agent and application build, Operate, Legacy software modernization. Read tools are free to call; the two submit tools reach a human inbox and cannot be undone.", "tools": [ { "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.", "inputSchema": { "additionalProperties": false, "type": "object" }, "name": "dynomatix_about", "outputSchema": { "properties": { "contact": { "description": "General and hiring email addresses, and the enquiry page.", "type": "object" }, "engagements": { "description": "The kinds of work Dynomatix takes on.", "items": { "properties": { "description": { "type": "string" }, "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "identity": { "description": "Name, legal name, URL, tagline, description, founding year.", "type": "object" }, "keyPages": { "description": "Labelled links to the pages worth reading next.", "items": { "properties": { "label": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "type": "array" }, "proof": { "description": "Years active, products shipped, how many are still live.", "type": "object" } }, "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "The position's slug, exactly as dynomatix_list_open_positions returned it. Lowercase letters, digits and hyphens.", "maxLength": 81, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "dynomatix_get_position", "outputSchema": null }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "The item's slug, exactly as dynomatix_list_work returned it. Lowercase letters, digits and hyphens.", "maxLength": 81, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "dynomatix_get_work", "outputSchema": null }, { "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.", "inputSchema": { "additionalProperties": false, "type": "object" }, "name": "dynomatix_list_open_positions", "outputSchema": { "properties": { "positions": { "description": "Open roles, in the order the site lists them.", "items": { "properties": { "datePosted": { "description": "ISO 8601 date.", "type": "string" }, "employmentType": { "description": "Full-time, contract, and so on.", "type": "string" }, "role": { "description": "The role's title.", "type": "string" }, "slug": { "description": "Identifier for dynomatix_get_position and the `position` argument of dynomatix_submit_application.", "type": "string" }, "summary": { "description": "One-line description of the role.", "type": "string" }, "url": { "description": "Path to the posting on dynomatix.com.", "type": "string" }, "validThrough": { "description": "ISO 8601 date.", "type": "string" } }, "required": [ "slug", "role", "url" ], "type": "object" }, "type": "array" } }, "required": [ "positions" ], "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "type": "object" }, "name": "dynomatix_list_work", "outputSchema": { "properties": { "work": { "description": "Products and engagements, in the order the site lists them.", "items": { "properties": { "caseStudyUrl": { "description": "Null when no case study has been written.", "type": [ "string", "null" ] }, "description": { "type": "string" }, "linkLabel": { "type": "string" }, "markdownUrl": { "description": "Null when no case study has been written.", "type": [ "string", "null" ] }, "name": { "type": "string" }, "since": { "description": "The year the work began.", "type": "string" }, "slug": { "description": "Identifier for dynomatix_get_work.", "type": "string" }, "status": { "description": "Whether the item is live, retired, and so on.", "type": "string" }, "url": { "description": "The product's own address.", "type": "string" } }, "required": [ "slug", "name" ], "type": "object" }, "type": "array" } }, "required": [ "work" ], "type": "object" } }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "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, "type": "string" }, "letter": { "description": "Optional cover letter. Newlines are preserved.", "maxLength": 10000, "type": "string" }, "name": { "description": "The applicant's full name.", "maxLength": 100, "type": "string" }, "phone": { "description": "Optional. The applicant's phone number.", "maxLength": 40, "type": "string" }, "portfolio": { "description": "Optional. A full web address starting with http:// or https:// — a portfolio, GitHub profile or personal site.", "maxLength": 300, "type": "string" }, "position": { "description": "Slug of the role, from dynomatix_list_open_positions. A role that is not on that list is not accepting applications.", "maxLength": 81, "type": "string" }, "resume_base64": { "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.", "type": "string" }, "resume_filename": { "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.", "type": "string" }, "resume_url": { "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.", "type": "string" } }, "required": [ "position", "name", "email" ], "type": "object" }, "name": "dynomatix_submit_application", "outputSchema": null }, { "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.", "inputSchema": { "additionalProperties": false, "properties": { "brief": { "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, "type": "string" }, "company": { "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, "type": "string" }, "email": { "description": "The enquirer's email address, in the form [email protected]. This is the only address the reply can go to.", "maxLength": 254, "type": "string" }, "name": { "description": "The enquirer's full name.", "maxLength": 100, "type": "string" }, "timeline": { "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.", "enum": [ "exploring", "this-quarter", "already-started" ], "type": "string" } }, "required": [ "name", "email", "company", "brief" ], "type": "object" }, "name": "dynomatix_submit_enquiry", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:e0de3c4e188794fee416ffb8304471d75fc4719cd66fff29478c5472be159f75 | sha256sum