DevMatch

DevMatch — evidence-based engineer hiring for mission-driven teams.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
100%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,546Tokens (Tool-Definitionen)
~12.9 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.77% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "devmatch": {
      "url": "https://mcp.dev-match.xyz/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.dev-match.xyz/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (3)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢find_candidates(exclude, input, limit, location)

Find engineers who uniquely fit a role or project from open-source contributions and other public work, with evidence. Input: pass the richest context you have — (1) a full job description (most common), (2) a synthesized brief after reviewing a company's public repo (README + stack + role needs — preferred over a bare URL when you've evaluated the project), (3) a public github.com repo URL (server fetches README/topics; private repos → paste README as text), or (4) an informal role brief. Longer, more specific input produces a tighter mission fit. Optional `location` narrows to a city, country, or ISO country code. Returns up to limit candidates (default 20, max 20) with full inline profiles in structuredContent (view=candidates): login, name, bio, location, followers, reach (cross-platform audience percentile + reach), html_url, top_repos, signals, matched_projects, location_match, and contact (top_topics / top_domains / top_languages / top_subtopics are optional until software-topic backfill). Results never include bots, CI, or service accounts — they are filtered out automatically. Use the optional `exclude` array (GitHub logins or org names) to drop additional accounts. AGENT MODE: consume structuredContent only. HUMAN MODE: MCP App panel shows candidate cards; use server instructions for text-only hosts. Do not call get_profile for handles already in these results unless the user asks for deeper detail. Defense (SBIR), NRC filings, and mining QP consents are matched by lexical FTS over award titles, accessions, and consent letters — not abstract similarity. Publication, NTRS, repo, and TechPort roles still use description vectors. Do not claim a semantic abstract match for an NRC accession or a QP consent.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "exclude": {
      "description": "Optional. GitHub logins or org names to exclude from results (case-insensitive). Matches a candidate's login AND the owner/org of every repo they matched on — so passing a company's GitHub org (e.g. \"livekit\", which also covers \"livekit-cloud\") keeps that company's own engineers out of a shortlist you're building FOR them. Also use it to suppress specific handles you've already contacted. Bots and CI/service accounts are excluded automatically and need not be listed.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "input": {
      "description": "Search brief: full JD, repo-derived summary (preferred when you've reviewed the project), README excerpt, informal role brief, or a PUBLIC github.com repo URL. Private repos: paste README content as text.",
      "type": "string"
    },
    "limit": {
      "description": "Max candidates to return. Default 20, max 20.",
      "maximum": 20,
      "minimum": 1,
      "type": "integer"
    },
    "location": {
      "description": "Optional. Restrict results to a place — a city (\"Bozeman\"), US state (\"MT\" / \"Montana\"), country name (\"Germany\"), or ISO country code (\"US\"). Matched against the candidate's stated and normalized location. Only pass it when the user explicitly requires a location; results are then hard-filtered to matches. Note many profiles omit location, so a strict location search returns a smaller pool. For laser/photonics roles, combine location with a domain-specific job description so the photonics specialist corpus can contribute too.",
      "type": "string"
    }
  },
  "required": [
    "input"
  ]
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "cache_source": {
      "description": "hit=fresh cache; miss=live retrieval; stale=last known-good shortlist after the engine timed out or was unavailable (degraded=true).",
      "enum": [
        "hit",
        "miss",
        "stale"
      ],
      "type": "string"
    },
    "candidates": {
      "description": "Shortlist of engineers who uniquely fit the role, with evidence. When presenting to the user, format each item using FindCandidatesPresentationTemplate from server instructions — list every contact.urls entry and every email verbatim. Do not present them as a numbered ranking.",
      "items": {
        "properties": {
          "avatar_url": {
            "type": "string"
          },
          "bio": {
            "type": "string"
          },
          "contact": {
            "description": "Outreach surface. Always present on wire (arrays may be empty). Agents MUST list every emails entry, every guessed_emails entry, and every urls key-value pair in user-facing output.",
            "properties": {
              "emails": {
                "description": "All known emails, deduped. Include every entry when presenting or exporting.",
                "items": {
                  "properties": {
                    "deliverable": {
                      "type": "boolean"
                    },
                    "email": {
                      "type": "string"
                    },
                    "kind": {
                      "description": "real | service | bot | unknown (hex relays and pattern guesses are in guessed_emails, not here)",
                      "type": "string"
                    },
                    "sources": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "guessed_emails": {
                "description": "Pattern-based outreach addresses when no deliverable inbox exists. Include all entries when presenting or exporting.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "recommended_contact": {
                "description": "Best single email to try",
                "type": "string"
              },
              "recommended_contact_kind": {
                "description": "real | service | unverified | etc.",
                "type": "string"
              },
              "urls": {
                "additionalProperties": {
                  "description": "Other platform links (e.g. substack.com) keyed by platform name",
                  "type": "string"
                },
                "description": "Normalized social and web URLs. Include every key-value pair when presenting or exporting.",
                "properties": {
                  "bluesky": {
                    "type": "string"
                  },
                  "devto": {
                    "type": "string"
                  },
                  "discord": {
                    "type": "string"
                  },
                  "facebook": {
                    "type": "string"
                  },
                  "github": {
                    "type": "string"
                  },
                  "gitlab": {
                    "type": "string"
                  },
                  "instagram": {
                    "type": "string"
                  },
                  "linkedin": {
                    "type": "string"
                  },
                  "mastodon": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string"
                  },
                  "twitch": {
                    "type": "string"
                  },
                  "website": {
                    "type": "string"
                  },
                  "x": {
                    "type": "string"
                  },
                  "youtube": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "emails",
              "guessed_emails",
              "urls"
            ],
            "type": "object"
          },
          "evidence": {
            "description": "The checkable work behind this pick. Read `kind` before rendering: repositories, publications, awards, reports, filings, technology projects and patents are not interchangeable.",
            "properties": {
              "items": {
                "items": {
                  "properties": {
                    "count": {
                      "description": "Contributions, awards or reports depending on kind.",
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "url": {
                      "description": "What makes the claim checkable; a title alone cannot be told from an invention.",
                      "type": "string"
                    },
                    "year": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "kind": {
                "enum": [
                  "repositories",
                  "publications",
                  "awards",
                  "reports",
                  "filings",
                  "technology_projects",
                  "patents"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "followers": {
            "description": "GitHub follower count",
            "type": "integer"
          },
          "html_url": {
            "description": "GitHub profile URL",
            "type": "string"
          },
          "id": {
            "description": "Stable lookup key for get_profile: GitHub login, ORCID iD, or source:name (nrc:Gardner P A). Prefer this over login.",
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "location_match": {
            "description": "Whether the candidate satisfied the request's optional location filter",
            "type": "boolean"
          },
          "login": {
            "description": "GitHub handle. Present only when source is github. Empty for ORCID and source:name people — use person_id.",
            "type": "string"
          },
          "matched_projects": {
            "description": "Repos this candidate contributed to that matched the search brief",
            "items": {
              "properties": {
                "contribution_count": {
                  "type": "integer"
                },
                "last_contribution_at": {
                  "description": "RFC3339 timestamp",
                  "type": "string"
                },
                "project_sim": {
                  "description": "Search-brief↔project cosine similarity, 0–1",
                  "type": "number"
                },
                "repo": {
                  "description": "owner/name",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "description": "Display name",
            "type": "string"
          },
          "orcid_id": {
            "description": "Resolves at https://orcid.org/<id>, so a research claim is checkable.",
            "type": "string"
          },
          "organization": {
            "description": "Firm, lab or institution. The identity anchor when there is no GitHub handle.",
            "type": "string"
          },
          "person_id": {
            "description": "Alias of id. Same value /chat cards expose as person_id so hosts can chain find_candidates → get_profile without renaming fields.",
            "type": "string"
          },
          "reach": {
            "description": "Cross-platform distribution/audience signal (GitHub + Bluesky/Mastodon/YouTube/…). Present only when the candidate has captured reach; absent otherwise. Surface it when presenting — it distinguishes builders with an audience.",
            "properties": {
              "followers_sum": {
                "description": "Total audience summed across captured platforms",
                "type": "integer"
              },
              "max_platform": {
                "description": "Platform where this candidate has the largest audience",
                "type": "string"
              },
              "percentile": {
                "description": "Audience percentile across all indexed engineers, 0–100",
                "type": "number"
              }
            },
            "type": "object"
          },
          "signals": {
            "properties": {
              "matched_project_count": {
                "type": "integer"
              },
              "top_project_sim": {
                "type": "number"
              },
              "total_contributions": {
                "type": "integer"
              }
            },
            "type": "object"
          },
          "source": {
            "description": "Which corpus this person came from, and therefore what kind of evidence backs them. github = open-source contributions with contact details. orcid = published research, no GitHub, no contact. sbir = federal defense award record. ntrs = NASA technical reports. nrc = nuclear regulatory filings. edgar = mining technical-report consents. photonics = laser/photonics SBIR awards. techport = NASA technology projects. uspto = named inventors on granted US patents. These are SEPARATE populations, not one enriched record — never merge people across them, and never present a non-github candidate as having open-source contributions.",
            "enum": [
              "github",
              "orcid",
              "sbir",
              "ntrs",
              "nrc",
              "edgar",
              "photonics",
              "techport",
              "uspto"
            ],
            "type": "string"
          },
          "top_domains": {
            "description": "Optional. Hiring-area domains (frontend, ml-infra, aerospace).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "top_languages": {
            "description": "Optional. Languages from the candidate's top repos (python, rust-systems). Orthogonal to topics.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "top_repos": {
            "description": "Repos ordered by push + PR volume, NOT by contribution_count — that counts stars as contributions. Present for ~70% of GitHub candidates; absent for researchers and for agents whose contribution rollup has not run.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "top_subtopics": {
            "description": "Optional. JD-match methods (ekf, paged-attention, virtual-dom).",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "top_topics": {
            "description": "Distinctive software stack/product chips (react, gpu-inference). Empty until ClassifySoftwareBuilder backfill. Not a language bag.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "degrade_reason": {
      "description": "Why degraded is true: embedding/FTS fallback, upstream_timeout / upstream_unreachable with cache_source=stale, or discovery_fallback.",
      "type": "string"
    },
    "degraded": {
      "description": "True when this shortlist is not full quality: FTS-only retrieval, last-known-good (cache_source=stale), or discovery corpus fallback. Hosts should say so; do not invent extra candidates.",
      "type": "boolean"
    },
    "discovery_fallback": {
      "description": "True when auto mode fell back from work_artifacts to serving.projects because searchable embedding coverage was below threshold. Explicit env overrides are not fallbacks.",
      "type": "boolean"
    },
    "discovery_source": {
      "description": "Which software repository index supplied GitHub candidates: work_artifacts (artifact-first) or serving.projects (legacy). Omitted when the query did not use the GitHub software lane.",
      "enum": [
        "artifacts",
        "projects"
      ],
      "type": "string"
    },
    "precision_gate": {
      "description": "Whether the LLM precision screen ran on this response. \"on\" means results were filtered for relevance; \"off\" means raw retrieval order. When the screen was requested but unavailable, the tool returns an error (HTTP 503, reason=precision_gate_unavailable) instead of un-gated results.",
      "enum": [
        "on",
        "off"
      ],
      "type": "string"
    },
    "query_ms": {
      "description": "End-to-end query time in milliseconds",
      "type": "integer"
    },
    "total_count": {
      "description": "Count of candidates returned (≤ requested limit)",
      "type": "integer"
    },
    "unreachable_dropped": {
      "description": "How many retrieved people this search removed because they had no real inbox and no Treg enrichment path (LinkedIn or name+company domain). Omitted when zero.",
      "type": "integer"
    },
    "view": {
      "description": "Payload discriminator for MCP App hosts",
      "enum": [
        "candidates"
      ],
      "type": "string"
    }
  },
  "required": [
    "candidates",
    "total_count"
  ]
}
🟢get_profile(handle, id)

Fetch one contributor's profile card by GitHub login, ORCID iD (or orcid.org URL), or a find_candidates `id` (source:name such as ntrs:Ada Lovelace). Do not invent a GitHub handle for research or deep-tech people — pass their id. find_candidates already returns full inline profiles; use get_profile only for ids outside those results or when the user asks for deeper detail. Returns structuredContent (view=profile). Agents: consume structuredContent only. IMPORTANT — interpreting recent_activities: indexed GitHub activity in the current ingestion window (2025–2026), up to ~20 events per recent project. NOT a complete career history. Empty or older activity does not mean inactive.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "handle": {
      "description": "Person to look up: a GitHub login (no '@'), an ORCID iD or https://orcid.org/<id> URL, or a find_candidates id (source:name such as ntrs:Ada Lovelace). Do not invent a GitHub handle for research or deep-tech people.",
      "type": "string"
    },
    "id": {
      "description": "Alias for handle. Pass a find_candidates `id` (GitHub login, ORCID iD, or source:name).",
      "type": "string"
    }
  },
  "required": [
    "handle"
  ]
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "avatar_url": {
      "type": "string"
    },
    "bio": {
      "type": "string"
    },
    "company": {
      "type": "string"
    },
    "display_name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "followers": {
      "type": "integer"
    },
    "html_url": {
      "description": "Profile URL (GitHub or https://orcid.org/<id>)",
      "type": "string"
    },
    "location": {
      "type": "string"
    },
    "login_name": {
      "description": "GitHub handle. Empty for ORCID and source:name people — use person_id.",
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "person_id": {
      "description": "Stable lookup key: GitHub login, ORCID iD, or source:name.",
      "type": "string"
    },
    "profile_readme": {
      "description": "User's profile README content if present",
      "type": "string"
    },
    "public_repos": {
      "type": "integer"
    },
    "recent_activities": {
      "description": "Indexed GitHub events from current ingestion window (2025–2026). NOT a full career timeline.",
      "type": "array"
    },
    "social_accounts": {
      "description": "Social URLs (twitter, linkedin, etc.)",
      "type": "object"
    },
    "top_projects": {
      "description": "Highest-contribution projects this user worked on",
      "type": "array"
    }
  },
  "required": [
    "login_name"
  ]
}
🟢find_similar_projects(limit, repo)

Find open-source projects similar to a seed GitHub repo, closest in description, topics, and README. Each result includes top contributors as leads — not a hiring shortlist. Returns structuredContent (view=similar_projects). Agents: consume structuredContent only. Use for landscape mapping or to discover anchor repos; follow with find_candidates for hiring matches.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Number of similar projects to return. Defaults to 10, max 25.",
      "maximum": 25,
      "minimum": 1,
      "type": "integer"
    },
    "repo": {
      "description": "Seed repo in `owner/name` form (e.g. 'karpathy/llm.c'). A full github.com URL is also accepted; the server strips the prefix.",
      "type": "string"
    }
  },
  "required": [
    "repo"
  ]
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "cache_source": {
      "enum": [
        "hit",
        "miss"
      ],
      "type": "string"
    },
    "projects": {
      "description": "Similar projects, closest to the seed repo by vector similarity.",
      "items": {
        "properties": {
          "description": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "repo": {
            "description": "owner/name on GitHub",
            "type": "string"
          },
          "similarity": {
            "description": "Cosine similarity to seed repo, 0–1",
            "type": "number"
          },
          "stars": {
            "type": "integer"
          },
          "top_contributors": {
            "description": "Contributor leads — follow with find_candidates for unique mission fit.",
            "items": {
              "properties": {
                "contribution_count": {
                  "type": "integer"
                },
                "last_contribution_at": {
                  "type": "string"
                },
                "login": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "topics": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "query_ms": {
      "type": "integer"
    },
    "seed": {
      "description": "The owner/name searched against",
      "type": "string"
    },
    "total_count": {
      "type": "integer"
    }
  },
  "required": [
    "projects"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet3 Tools
verifiziertVersion nicht aufgezeichnet3 Tools