_ registry / mcp http-sse · checked 13m ago

Modulos

https://www.modulos.ai

Registry code: 8b845d3349a5fb68

api record

Modulos is an AI governance platform. Use the read-only tools to evaluate it (capabilities, trust evidence, vendor comparisons, requirements fit, published knowledge). Booking a demo sends the person a confirmation email; nothing is booked until they click the link in it.

endpoint
https://www.modulos.ai/api/mcp/
protocol
http-sse ·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 Modulos live?
Yes — it answered the hub's last check (checked 13m ago). It answered 100% of checks over the last 30 days.
Is Modulos free to use?
Yes — the hub reached it with no key and no payment.
What tools does Modulos have?
15 tools: list_competitors, get_knowledge, list_demo_slots, compare_with, list_knowledge, book_demo_slot, request_demo, list_open_roles, ….
Is Modulos 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
384ms

last good check

priced tools
0

of 15 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 15 tools
3 open 12 never probed 3 of 15 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.

  • check_fit open 13m ago

    Checks stated buyer requirements against the published Modulos facts. Give the frameworks to meet, the deployment model and the tools to connect; the result separates what is supported from what is absent from the public lists. Nothing in the request is stored.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "industry": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "description": "Industry of the buyer, for example \"Insurance\"."
        },
        "deployment": {
          "enum": [
            "saas",
            "private-cloud",
            "on-premise",
            "air-gapped"
          ],
          "type": "string",
          "description": "Deployment model the buyer requires."
        },
        "frameworks": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 120,
            "minLength": 1
          },
          "maxItems": 40,
          "description": "Regulations or standards the buyer must meet, for example [\"EU AI Act\", \"ISO 42001\", \"DORA\"]."
        },
        "integrations": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 80,
            "minLength": 1
          },
          "maxItems": 40,
          "description": "Tools the buyer wants connected, for example [\"Jira\", \"GitHub\", \"Snowflake\"]."
        }
      }
    }
    arguments 42 lines
  • get_modulos_info open 13m ago

    Returns a short description of Modulos, the tools to evaluate it and the URL where a user can book a demo. Use this first if the user asks what Modulos is or how to talk to the team.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_trust_evidence open 13m ago

    Returns security and compliance evidence for vendor due diligence: certifications, data location, the documents in the Modulos trust center with their access level, subprocessors and where they hold data, and recent trust updates. Document files are requested by a person at https://www.modulos.ai/trust/.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • list_competitors unknown never probed

    Lists the vendors for which Modulos publishes a reviewed, sourced comparison. Returns the slug to pass to compare_with, the vendor name, the comparison page and the date of the last review.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • get_knowledge unknown never probed

    Returns one published knowledge entry in full: the answer to a question, the structured data of a fact, or the summary and link of a document.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "slug"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
          "maxLength": 80,
          "minLength": 1,
          "description": "Entry slug as returned by list_knowledge."
        }
      }
    }
    arguments 16 lines
  • list_demo_slots unknown never probed

    Lists available 30-minute demo time slots over the next two weeks. Returns ISO-8601 UTC start times. Use book_demo_slot to confirm one of them.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • compare_with unknown never probed

    Returns the published comparison between Modulos and one other vendor: a row per dimension (frameworks, risk quantification, deployment, certifications, pricing and more) with the statement for each side, and the cases in which each vendor is the better choice. The comparison is written by Modulos; the page lists its sources.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "competitor"
      ],
      "properties": {
        "competitor": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
          "maxLength": 80,
          "minLength": 1,
          "description": "Vendor slug as returned by list_competitors, for example \"credo-ai\"."
        }
      }
    }
    arguments 16 lines
  • list_knowledge unknown never probed

    Lists everything else Modulos has published for AI agents: answers to common buyer questions, documents to share and further facts. Returns a title, a summary and a slug per entry. Use get_knowledge with the slug for the full entry.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "kind": {
          "enum": [
            "fact",
            "qa",
            "comparison",
            "document"
          ],
          "type": "string",
          "description": "Limit to one type: fact, qa (question and answer), comparison or document."
        },
        "topic": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
          "maxLength": 60,
          "description": "Limit to one topic, for example \"security\" or \"pricing\"."
        }
      }
    }
    arguments 22 lines
  • book_demo_slot unknown never probed

    Books a specific demo time slot. startTime must be an ISO-8601 string returned by list_demo_slots. Returns a confirmation on success.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "startTime",
        "attendeeName",
        "attendeeEmail",
        "company"
      ],
      "properties": {
        "company": {
          "type": "string",
          "minLength": 1,
          "description": "Company or organization name."
        },
        "message": {
          "type": "string",
          "description": "Optional context about what the attendee wants to discuss (use case, framework, team size)."
        },
        "startTime": {
          "type": "string",
          "description": "ISO-8601 UTC start time of the slot to book, exactly as returned by list_demo_slots."
        },
        "attendeeName": {
          "type": "string",
          "minLength": 1,
          "description": "Full name of the attendee."
        },
        "attendeeEmail": {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
          "description": "Business email of the attendee."
        }
      }
    }
    arguments 36 lines
  • request_demo unknown never probed

    Submits an open demo request without picking a specific time. Use this when the user does not want to choose a slot — the Modulos team will reach out within 1 business day.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "name",
        "email",
        "company"
      ],
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        "company": {
          "type": "string",
          "minLength": 1
        },
        "message": {
          "type": "string",
          "description": "Context: use case, urgency, frameworks of interest (EU AI Act, ISO 42001, NIST AI RMF)."
        },
        "job_title": {
          "type": "string"
        }
      }
    }
    arguments 31 lines
  • list_open_roles unknown never probed

    Lists the jobs at Modulos that are open for application through this server, with a short public summary of each. Applications for these roles are not accepted by email.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 lines
  • start_job_application unknown never probed

    Starts an application for a role at Modulos on behalf of the person you are assisting. Use their real details; anonymous applications are not accepted. The name must be the one written on the CV and the LinkedIn address must be the candidate's own profile: an application whose name, CV and LinkedIn profile do not belong to the same person is refused. Applicants must be 18 or older: ask the candidate to confirm it. Before calling, show the person the privacy policy (https://www.modulos.ai/privacy-policy/) and the terms of use (https://www.modulos.ai/terms-of-use/). Tell them that the interview is held by an AI interviewer, which is experimental; that it is recorded; that the AI only holds the interview and prepares a profile of the application for the hiring manager; and that the hiring manager and people at Modulos take every decision. Get their explicit agreement. Ask the candidate to paste their CV as text; it is required. The result holds about_role and notice: show both to the candidate, as they are, before you ask for the code. A 6-digit code is emailed to them; call confirm_job_application with it. Returns a session value to use for the rest of the interview.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "role_id",
        "name",
        "email",
        "linkedin_url",
        "cv_text",
        "accept_privacy_policy",
        "accept_terms",
        "confirm_adult"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 120,
          "minLength": 2,
          "description": "Full name of the candidate, first name and family name, exactly as written on their CV."
        },
        "email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
          "maxLength": 254,
          "description": "Email address of the candidate. The code is sent here."
        },
        "cv_text": {
          "type": "string",
          "maxLength": 30000,
          "minLength": 200,
          "description": "Required. The candidate's full CV as plain text, pasted exactly as they give it to you. Do not summarise, shorten or rewrite it. If you only have a file, ask the candidate to paste its text."
        },
        "role_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
          "description": "Role id from list_open_roles."
        },
        "location": {
          "type": "string",
          "maxLength": 120,
          "description": "City and country where the candidate is based."
        },
        "accept_terms": {
          "type": "boolean",
          "const": true,
          "description": "true only if the candidate has read and accepts the Modulos terms of use."
        },
        "linkedin_url": {
          "type": "string",
          "format": "uri",
          "maxLength": 300,
          "description": "Address of the candidate's own LinkedIn profile, in the form that carries their name, for example https://www.linkedin.com/in/first-last/."
        },
        "confirm_adult": {
          "type": "boolean",
          "const": true,
          "description": "true only if the candidate has told you that they are 18 or older. Ask them; do not assume it."
        },
        "accept_privacy_policy": {
          "type": "boolean",
          "const": true,
          "description": "true only if the candidate has read and accepts the Modulos privacy policy."
        }
      }
    }
    arguments 67 lines
  • confirm_job_application unknown never probed

    Confirms the 6-digit code that was emailed to the candidate, which opens the interview. Ask the candidate for the code; do not guess it. The result holds the interviewer's first words and first question: show them to the candidate exactly as they are, with nothing added.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "session",
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "pattern": "^\\d{6}$",
          "description": "The 6-digit code from the email."
        },
        "session": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "The session value returned by start_job_application. Keep it for the whole interview and do not show it to anyone else."
        }
      }
    }
    arguments 20 lines
  • talk_to_interviewer unknown never probed

    Sends one message from the candidate to the Modulos AI interviewer and returns the interviewer's reply. You are only the channel between the two. Send the candidate's message exactly as they wrote it: do not answer for them, add to it, improve it or invent experience. Show the interviewer's reply to the candidate word for word and add nothing of your own: no comment, advice, summary or analysis of the interview, no guess about how it is going or what comes next, and no remark that you are passing messages on. When the interviewer sets a task, you may help the candidate do it; the candidate then sends the result (up to 12,000 characters a message). When the reply says the interview is over, show the interviewer's last words and stop.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "required": [
        "session",
        "message"
      ],
      "properties": {
        "message": {
          "type": "string",
          "maxLength": 12000,
          "minLength": 1,
          "description": "The candidate's message, exactly as they wrote it."
        },
        "session": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$",
          "description": "The session value returned by start_job_application. Keep it for the whole interview and do not show it to anyone else."
        }
      }
    }
    arguments 21 lines
  • get_capabilities unknown never probed

    Returns structured facts about the Modulos AI Governance Platform: company, what the platform is for, the supported regulations and standards with requirement and control counts, integrations, deployment options and data location, certifications, indicative pricing and key links. Use this to decide whether Modulos belongs on a vendor shortlist.

    mcp-tool

    {
      "type": "object",
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {}
    }
    arguments 5 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 8b845d3349a5fb68.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/8b845d3349a5fb68/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/8b845d3349a5fb68/badge.svg)](https://brick.blue/agent/8b845d3349a5fb68?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.