_ registry / mcp streamable-http · checked 1h ago

welance-directory

https://welance.com

Registry code: d1930da1e3c77585

api record

welance/directory, connected to one person (OAuth). Free: there are no plans and no credits. Public tools work without signing in; the read_* tools read the signed-in person's own directory (profile, teams, briefs, pitches, bookings, invoices) and the propose_* tools STORE a proposal the person reviews and confirms on welance.com/directory. Nothing is published, sent, invited, booked or paid by this connection: the only paid step is the €30 + VAT per-side meeting handshake, which the person completes on the website. Always end with the review link a tool returns. Teams stay anonymous until a…

endpoint
https://welance.com/directory/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is welance-directory live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is welance-directory free to use?
Yes — the hub reached it with no key and no payment.
What tools does welance-directory have?
20 tools: preview_teams, read_my_pitches, read_brief, read_booking, read_pitchable_briefs, propose_brief_draft, propose_pitch_send, match_brief, ….
Is welance-directory safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
275ms

last good check

priced tools
0

of 20 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 20 tools
3 open 17 never probed 3 of 20 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • brief_rules open 1h ago

    The rule catalogue a brief is scored against before teams see it: ids, labels, weights and the acceptance threshold. Use it to help the human write a brief that publishes.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • directory_capabilities open 1h ago

    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 the project; €30 + VAT from each side only to meet, charged once both accept a time), and the rule that the human stays the principal.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • list_open_briefs open 1h ago

    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-side. Filter by status or to tangible-world projects only.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "open",
            "vetting",
            "executed"
          ],
          "type": "string"
        },
        "tangible": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • preview_teams unknown never probed

    Two anonymous, vetted teams as specimens (rotating daily) and the size of the supply — never the whole board. The board is brief-first: to see the teams that fit a project, send a draft brief to match_brief. Names and members are revealed only after a mutual €30-per-side handshake.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • read_my_pitches unknown never probed

    My pitches and bookings on both sides: my teams' applications (with handshake and booking state) and the anonymous pitches received on my own briefs.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • read_brief unknown never probed

    Read one public brief in full (markdown body included).

    mcp-tool

    {
      "type": "object",
      "required": [
        "briefId"
      ],
      "properties": {
        "briefId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • read_booking unknown never probed

    Read one booking (slots, state, my side) by its id.

    mcp-tool

    {
      "type": "object",
      "required": [
        "bookingId"
      ],
      "properties": {
        "bookingId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • read_pitchable_briefs unknown never probed

    For each of my teams, the open briefs it can still pitch on (not yet pitched, slots left, language match).

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • propose_brief_draft unknown never probed

    Propose an update to the person's LOCAL brief draft (title, markdown, or per-rule answers). Applied to the editor only on tap; nothing is published. The whole proposal must fit 64,000 UTF-8 bytes. Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "summary"
      ],
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "answers": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "markdown": {
          "type": "string",
          "maxLength": 100000,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 32 lines
  • propose_pitch_send unknown never probed

    Propose SENDING an anonymous pitch for one of my teams (an explicit confirm; the brief owner sees it). Pitch slots per brief are limited (10). Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "briefId",
        "teamKey",
        "text",
        "summary"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 800,
          "minLength": 40,
          "description": "Anonymous: no names, emails, phone numbers or links."
        },
        "briefId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "teamKey": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • match_brief unknown never probed

    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 inferred from the brief. Same derivation and matcher as publishing, stores nothing, calls no LLM. Ends with a "Start this brief" link that opens the guided flow prefilled.

    mcp-tool

    {
      "type": "object",
      "required": [
        "brief"
      ],
      "properties": {
        "brief": {
          "type": "string",
          "description": "The draft brief, markdown or plain text"
        },
        "title": {
          "type": "string"
        },
        "language": {
          "type": "string",
          "description": "ISO 639-1 language the team must speak"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • read_profile unknown never probed

    Read my own Directory profile: role, years, languages, rated skills, hourly rate, verification state.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • read_my_teams unknown never probed

    List my teams with key (teamKey), name, the facts the system DERIVES (members = confirmed people, rate = blended from members unless a team override, languages from members unless set) — never ask the person for these — their profile (based, remote, availability, shipped), open/matching brief counts, and a checklist of what pitching and the public board require, met or missing.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • read_invoices unknown never probed

    List my past invoices with their Stripe pdfUrl / documentUrl links. By default ALL my billing identities (personal VAT + companies I own or administer), each invoice tagged with its identity {kind, id, label, vatMasked}. Narrow with identity = "personal" or "org:<organisationId>" (ids from read_my_organisations), or identities = several of those; from/to (YYYY-MM-DD, inclusive) narrow by date, e.g. last quarter. To open the page: propose_navigate section "billing", param = "all", "personal" or "org:<organisationId>".

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "to": {
          "type": "string",
          "maxLength": 10
        },
        "from": {
          "type": "string",
          "maxLength": 10
        },
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1
        },
        "identity": {
          "type": "string",
          "maxLength": 70,
          "minLength": 1
        },
        "identities": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 70,
            "minLength": 1
          },
          "maxItems": 10,
          "minItems": 1
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • propose_brief_publish unknown never probed

    Propose publishing a brief to the board. The server gate (live score) decides; the confirm card states that a one-time link is emailed and that publishing does not sign anyone in. The whole proposal must fit 64,000 UTF-8 bytes. Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "title",
        "markdown",
        "summary"
      ],
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "language": {
          "type": "string",
          "maxLength": 17
        },
        "markdown": {
          "type": "string",
          "maxLength": 100000,
          "minLength": 40
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • propose_profile_update unknown never probed

    Propose field changes to MY person profile (entity "person": job_role, years_experience, langs, skills, hourly_rate) or to a colleague on my team (entity "member" + teamKey + memberKey from read_team_roster: job_role, years_experience, langs, hourly_rate — a confirmed colleague only; their skills are theirs to rate) or to one of my teams (entity "team" + teamKey: intro, based, remote, availability, langs, shipped, hourly) Supported operations — use the one that matches the request: SKILLS (person): add or re-rate = changes[{field:"skills", value:[{name, rating}]}] (an existing name gets the new rating); remove = removeSkills:[names exactly as read_profile lists them]. Removing is supported: never say you cannot. LANGUAGES (person, member, team): addLangs / removeLangs with two-letter codes, or a changes langs value = the complete new list (not both). SCALARS: job_role, years_experience, hourly_rate (EUR/h, 10–2000), intro, based, remote, availability, hourly (team override; null = back to the members' blend), website, description: changes[{field, value}]. A value the person stated is supplied: propose it immediately with inferred=false. Team shipped: value = the entries to ADD, each {title, url, desc} — url may be the public link the person gave, desc one line; existing entries are kept automatically. removeShipped = titles or links of entries to REMOVE. Team hourly: only when the person explicitly asks to override the rate blended from members' rates; team size is never a field (it is the confirmed member count). or to an organisation I own or administer (entity "organisation" + organisationId: website, description — descriptive only, it verifies nothing). Each field becomes a separate card the person approves. skills value: [{name, rating 1-10}] — the rating must be the person's own choice (ask with ask_choice). Never propose hourly rate, availability, languages or skill ratings as inferred. Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "entity",
        "summary"
      ],
      "properties": {
        "entity": {
          "enum": [
            "person",
            "member",
            "team",
            "organisation"
          ],
          "type": "string"
        },
        "changes": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "field",
              "value",
              "inferred"
            ],
            "properties": {
              "field": {
                "type": "string",
                "maxLength": 40,
                "minLength": 1
              },
              "value": {
                "description": "The new value (type depends on field)."
              },
              "evidence": {
                "type": "string",
                "maxLength": 400,
                "description": "Minimal supporting excerpt, no contact data."
              },
              "inferred": {
                "type": "boolean",
                "description": "true when derived from evidence rather than stated by the person or the source"
              },
              "sourceId": {
                "type": "string",
                "maxLength": 120,
                "description": "The sourceId read_public_url returned, when the value comes from that site."
              },
              "attachmentId": {
                "type": "string",
                "maxLength": 120
              }
            },
            "additionalProperties": false
          },
          "maxItems": 7,
          "minItems": 1
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "teamKey": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1
        },
        "addLangs": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 5
          },
          "maxItems": 8,
          "minItems": 1
        },
        "memberKey": {
          "type": "string",
          "maxLength": 40,
          "minLength": 3
        },
        "removeLangs": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 5
          },
          "maxItems": 8,
          "minItems": 1
        },
        "removeSkills": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1
          },
          "maxItems": 30,
          "minItems": 1
        },
        "removeShipped": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 300,
            "minLength": 1
          },
          "maxItems": 12,
          "minItems": 1
        },
        "organisationId": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 120 lines
  • propose_team_invite unknown never probed

    Propose inviting a person to one of my teams by name and email (they get an email). Skill ratings are theirs to set later. Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "teamKey",
        "name",
        "email",
        "summary"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1
        },
        "role": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1
        },
        "email": {
          "type": "string",
          "maxLength": 254
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "teamKey": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • propose_pitch_draft unknown never probed

    Propose an anonymous pitch draft for one of my teams on an open brief. "Use draft" fills the existing pitch editor; nothing is sent. Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "briefId",
        "teamKey",
        "text",
        "summary"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 800,
          "minLength": 40,
          "description": "Anonymous: no names, emails, phone numbers or links."
        },
        "briefId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "teamKey": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • propose_booking unknown never probed

    As the CLIENT of a pitch on my brief, propose a 30-minute call with at least 3 concrete slots: weekdays, on the hour, 09–18 CET, 3–10 business days ahead (ISO 8601). Proposing holds €30 from my side for up to 7 days; nothing is charged until both sides accept a time (a no-show’s €30 is not returned; the side that showed gets a credit). Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "appId",
        "slots",
        "summary"
      ],
      "properties": {
        "note": {
          "type": "string",
          "maxLength": 400
        },
        "appId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        },
        "slots": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 40
          },
          "maxItems": 10,
          "minItems": 3
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • propose_booking_accept unknown never probed

    As the TEAM, propose accepting one of the client's offered slots for a booking (accepting charges €30 from each side; if the client doesn't show, the team's €30 becomes a credit; if the team doesn't show, it isn't returned). Stores a proposal only. Nothing happens until the person confirms it on welance.com/directory (the answer carries the review link).

    mcp-tool

    {
      "type": "object",
      "required": [
        "bookingId",
        "slotId",
        "summary"
      ],
      "properties": {
        "slotId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        },
        "summary": {
          "type": "string",
          "maxLength": 300,
          "minLength": 3,
          "description": "One sentence, in the conversation language, saying what happens on confirm."
        },
        "bookingId": {
          "type": "integer",
          "maximum": 1000000000000,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id d1930da1e3c77585.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/d1930da1e3c77585/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/d1930da1e3c77585/badge.svg)](https://brick.blue/agent/d1930da1e3c77585?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on welance.com 1 entry

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.