{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pecxr8ddutpu","handle":"welance-directory","url":"https://wellknown.network/agents/welance-directory","links":{"self":"https://wellknown.network/agents/welance-directory/record.json","html":"https://wellknown.network/agents/welance-directory","markdown":"https://wellknown.network/agents/welance-directory/record.md","api":"https://wellknown.network/api/v1/agents/welance-directory","status":"https://wellknown.network/api/v1/agents/welance-directory/status","claim":"https://wellknown.network/agents/welance-directory/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/welance-directory/claim.json","badge":"https://wellknown.network/agents/welance-directory/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/welance-directory/history","tools":"https://wellknown.network/api/v1/agents/welance-directory/tools"},"ard":{"identifier":"urn:air:welance.com:server:welance-directory","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"welance/directory","summary":"Match a project brief with small vetted software teams, anonymously; sign in to manage your own.","description":"Match a project brief with small vetted software teams, anonymously; sign in to manage your own.","publisher":{"name":"com.welance","url":null},"homepage":"https://welance.com/directory/connect","repository":null,"version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://welance.com/directory/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-27T16:08:44.85371Z","publishedAt":"2026-10-27T16:08:44.85371Z","registryName":"com.welance/directory"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":1,"provenance":"derived"},{"slug":"ai.agent-discovery","name":"Agent Discovery","confidence":1,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.859,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.525,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.51,"provenance":"derived"},{"slug":"commerce.travel","name":"Travel & Booking","confidence":0.51,"provenance":"derived"}],"categories":["ai","commerce","communication","dev","documents","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-29T08:22:47.340Z","lastProbedAt":"2026-10-29T08:22:47.340Z","statusComputedAt":"2026-10-29T08:25:53.023Z","reliability30d":{"probes":2,"successRate":1,"p50Ms":98,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":2,"ok":2,"authBoundaryOk":0,"serviceOk":2,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-29T08:22:47.340Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":107,"error":null,"detail":{"tools":[{"name":"directory_capabilities","description":"What the directory is, who it is for (small vetted software teams for digital projects, especially ones rooted in the physical world), how pricing works (0% of "},{"name":"list_open_briefs","description":"The public briefs: open ones looking for a team, ones in vetting, and the archive of delivered projects with budget, sector and delivery team. Anonymised server"},{"name":"preview_teams","description":"Two anonymous, vetted teams as specimens (rotating daily) and the size of the supply — never the whole board. The board is brief-first: the teams that fit a pro"},{"name":"match_brief","description":"Match a draft brief (80–20000 characters) against the real, eligible anonymous teams: only teams the brief matches come back, with reasons and the defaults infe"},{"name":"brief_rules","description":"The rule catalogue a brief is scored against before teams see it: ids, labels, weights and the acceptance threshold that decides whether a brief publishes."},{"name":"read_profile","description":"The signed-in person's own directory profile: job role, years of experience, languages, rated skills, hourly rate and verification state."},{"name":"read_my_teams","description":"The signed-in person's teams: key (teamKey), name, and the facts the system derives rather than stores (members = confirmed people; rate = blended from members'"},{"name":"read_my_pitches","description":"The signed-in person's pitches and bookings on both sides: applications sent by their teams (with handshake and booking state) and the anonymous pitches receive"},{"name":"read_brief","description":"One public brief in full, markdown body included, by its id (briefId)."},{"name":"read_booking","description":"One booking by its id (bookingId): the proposed slots, its state, and which side the signed-in person is on."},{"name":"read_pitchable_briefs","description":"For each of the signed-in person's teams, the open briefs that team can still pitch on: not yet pitched, pitch slots left, and a language match."},{"name":"read_invoices","description":"The signed-in person's past invoices with their PDF and document links (pdfUrl / documentUrl). Without filters it covers every billing identity of the person (p"},{"name":"propose_brief_draft","description":"A proposed update to the person's local brief draft: title, markdown, and/or per-rule answers. Accepting it fills the brief editor; nothing is published. The wh"},{"name":"propose_brief_publish","description":"A proposal to publish a brief (title, markdown, optional language) to the board. On confirmation the server's live score gate decides whether it publishes; publ"},{"name":"propose_profile_update","description":"Proposed field changes to one entity. entity \"person\": the signed-in person's own profile (job_role, years_experience, langs, skills, hourly_rate). entity \"memb"},{"name":"propose_team_invite","description":"A proposal to invite a person to one of the signed-in person's teams (teamKey) by name and email, with an optional role. Once confirmed, the invitee receives an"},{"name":"propose_pitch_draft","description":"An anonymous pitch draft for one of the person's teams (teamKey) on an open brief (briefId). Accepting it fills the existing pitch editor; nothing is sent. Stor"},{"name":"propose_pitch_send","description":"A proposal to send an anonymous pitch for one of the person's teams (teamKey) on an open brief (briefId); once confirmed, the brief owner sees it. Each brief ac"},{"name":"propose_booking","description":"As the client of a pitch on the person's own brief (appId): a proposed 30-minute call with at least 3 concrete slots (ISO 8601; weekdays, on the hour, 09–18 CET"},{"name":"propose_booking_accept","description":"As the team on a booking (bookingId): a proposal to accept one of the client's offered slots (slotId). Accepting charges €30 from each side; if the client does "}],"toolCount":20,"toolsHash":"c196783dcfee7125229b78eb88f13640a09785793f81cbd88731cf36de885b53","serverName":"welance-directory","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T00:31:32.305Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":88,"error":null,"detail":{"tools":[{"name":"directory_capabilities","description":"What the directory is, who it is for (small vetted software teams for digital projects, especially ones rooted in the physical world), how pricing works (0% of "},{"name":"list_open_briefs","description":"The public briefs: open ones looking for a team, ones in vetting, and the archive of delivered projects with budget, sector and delivery team. Anonymised server"},{"name":"preview_teams","description":"Two anonymous, vetted teams as specimens (rotating daily) and the size of the supply — never the whole board. The board is brief-first: the teams that fit a pro"},{"name":"match_brief","description":"Match a draft brief (80–20000 characters) against the real, eligible anonymous teams: only teams the brief matches come back, with reasons and the defaults infe"},{"name":"brief_rules","description":"The rule catalogue a brief is scored against before teams see it: ids, labels, weights and the acceptance threshold that decides whether a brief publishes."},{"name":"read_profile","description":"The signed-in person's own directory profile: job role, years of experience, languages, rated skills, hourly rate and verification state."},{"name":"read_my_teams","description":"The signed-in person's teams: key (teamKey), name, and the facts the system derives rather than stores (members = confirmed people; rate = blended from members'"},{"name":"read_my_pitches","description":"The signed-in person's pitches and bookings on both sides: applications sent by their teams (with handshake and booking state) and the anonymous pitches receive"},{"name":"read_brief","description":"One public brief in full, markdown body included, by its id (briefId)."},{"name":"read_booking","description":"One booking by its id (bookingId): the proposed slots, its state, and which side the signed-in person is on."},{"name":"read_pitchable_briefs","description":"For each of the signed-in person's teams, the open briefs that team can still pitch on: not yet pitched, pitch slots left, and a language match."},{"name":"read_invoices","description":"The signed-in person's past invoices with their PDF and document links (pdfUrl / documentUrl). Without filters it covers every billing identity of the person (p"},{"name":"propose_brief_draft","description":"A proposed update to the person's local brief draft: title, markdown, and/or per-rule answers. Accepting it fills the brief editor; nothing is published. The wh"},{"name":"propose_brief_publish","description":"A proposal to publish a brief (title, markdown, optional language) to the board. On confirmation the server's live score gate decides whether it publishes; publ"},{"name":"propose_profile_update","description":"Proposed field changes to one entity. entity \"person\": the signed-in person's own profile (job_role, years_experience, langs, skills, hourly_rate). entity \"memb"},{"name":"propose_team_invite","description":"A proposal to invite a person to one of the signed-in person's teams (teamKey) by name and email, with an optional role. Once confirmed, the invitee receives an"},{"name":"propose_pitch_draft","description":"An anonymous pitch draft for one of the person's teams (teamKey) on an open brief (briefId). Accepting it fills the existing pitch editor; nothing is sent. Stor"},{"name":"propose_pitch_send","description":"A proposal to send an anonymous pitch for one of the person's teams (teamKey) on an open brief (briefId); once confirmed, the brief owner sees it. Each brief ac"},{"name":"propose_booking","description":"As the client of a pitch on the person's own brief (appId): a proposed 30-minute call with at least 3 concrete slots (ISO 8601; weekdays, on the hour, 09–18 CET"},{"name":"propose_booking_accept","description":"As the team on a booking (bookingId): a proposal to accept one of the client's offered slots (slotId). Accepting charges €30 from each side; if the client does "}],"toolCount":20,"toolsHash":"c196783dcfee7125229b78eb88f13640a09785793f81cbd88731cf36de885b53","serverName":"welance-directory","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"directory_capabilities","description":"What the directory is, who it is for (small vetted software teams for digital projects, especially ones rooted in the physical world), how pricing works (0% of "},{"name":"list_open_briefs","description":"The public briefs: open ones looking for a team, ones in vetting, and the archive of delivered projects with budget, sector and delivery team. Anonymised server"},{"name":"preview_teams","description":"Two anonymous, vetted teams as specimens (rotating daily) and the size of the supply — never the whole board. The board is brief-first: the teams that fit a pro"},{"name":"match_brief","description":"Match a draft brief (80–20000 characters) against the real, eligible anonymous teams: only teams the brief matches come back, with reasons and the defaults infe"},{"name":"brief_rules","description":"The rule catalogue a brief is scored against before teams see it: ids, labels, weights and the acceptance threshold that decides whether a brief publishes."},{"name":"read_profile","description":"The signed-in person's own directory profile: job role, years of experience, languages, rated skills, hourly rate and verification state."},{"name":"read_my_teams","description":"The signed-in person's teams: key (teamKey), name, and the facts the system derives rather than stores (members = confirmed people; rate = blended from members'"},{"name":"read_my_pitches","description":"The signed-in person's pitches and bookings on both sides: applications sent by their teams (with handshake and booking state) and the anonymous pitches receive"},{"name":"read_brief","description":"One public brief in full, markdown body included, by its id (briefId)."},{"name":"read_booking","description":"One booking by its id (bookingId): the proposed slots, its state, and which side the signed-in person is on."},{"name":"read_pitchable_briefs","description":"For each of the signed-in person's teams, the open briefs that team can still pitch on: not yet pitched, pitch slots left, and a language match."},{"name":"read_invoices","description":"The signed-in person's past invoices with their PDF and document links (pdfUrl / documentUrl). Without filters it covers every billing identity of the person (p"},{"name":"propose_brief_draft","description":"A proposed update to the person's local brief draft: title, markdown, and/or per-rule answers. Accepting it fills the brief editor; nothing is published. The wh"},{"name":"propose_brief_publish","description":"A proposal to publish a brief (title, markdown, optional language) to the board. On confirmation the server's live score gate decides whether it publishes; publ"},{"name":"propose_profile_update","description":"Proposed field changes to one entity. entity \"person\": the signed-in person's own profile (job_role, years_experience, langs, skills, hourly_rate). entity \"memb"},{"name":"propose_team_invite","description":"A proposal to invite a person to one of the signed-in person's teams (teamKey) by name and email, with an optional role. Once confirmed, the invitee receives an"},{"name":"propose_pitch_draft","description":"An anonymous pitch draft for one of the person's teams (teamKey) on an open brief (briefId). Accepting it fills the existing pitch editor; nothing is sent. Stor"},{"name":"propose_pitch_send","description":"A proposal to send an anonymous pitch for one of the person's teams (teamKey) on an open brief (briefId); once confirmed, the brief owner sees it. Each brief ac"},{"name":"propose_booking","description":"As the client of a pitch on the person's own brief (appId): a proposed 30-minute call with at least 3 concrete slots (ISO 8601; weekdays, on the hour, 09–18 CET"},{"name":"propose_booking_accept","description":"As the team on a booking (bookingId): a proposal to accept one of the client's offered slots (slotId). Accepting charges €30 from each side; if the client does "}],"package":null,"toolSurface":{"id":"ts_cx8x9eg4epkd","endpointId":"ep_2bt6suab478c","hash":"c196783dcfee7125229b78eb88f13640a09785793f81cbd88731cf36de885b53","toolCount":20,"serverName":"welance-directory","serverVersion":"1.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-29T00:31:33.420Z","lastSeenAt":"2026-10-29T08:22:47.344Z","observations":2,"toolNames":["directory_capabilities","list_open_briefs","preview_teams","match_brief","brief_rules","read_profile","read_my_teams","read_my_pitches","read_brief","read_booking","read_pitchable_briefs","read_invoices","propose_brief_draft","propose_brief_publish","propose_profile_update","propose_team_invite","propose_pitch_draft","propose_pitch_send","propose_booking","propose_booking_accept"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.welance/directory","url":"https://registry.modelcontextprotocol.io/v0/servers/com.welance%2Fdirectory","firstSeenAt":"2026-10-28T23:18:04.317Z","fetchedAt":"2026-10-28T23:18:04.317Z","normalizedAt":"2026-10-28T23:18:04.317Z"}]},"firstSeenAt":"2026-10-28T23:18:04.317Z","updatedAt":"2026-10-29T08:26:56.736Z"}