Capital Company
Launch SPVs and funds, invite investors and send capital calls through Capital Company.
Should I use this
Quality & Safety
Findings (8)
- HIGH
- LOWin capital_company_invite_investors
- LOWin capital_company_send_subscription_agreements
- LOWin capital_company_send_capital_calls
- LOWin capital_company_edit_commitment
- LOWin capital_company_create_commitment
- LOWin capital_company_show_confirmation
- LOWin capital_company_create_fund
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"capital-company": {
"url": "https://capitalcompany.ai/mcp"
}
}
}Remote endpoints
https://capitalcompany.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (14)
🟡create_workspace(email, fullName, teamName)
Opens a Capital Company workspace for someone who has none: their account and their firm’s team. Needs no sign-in. They then sign in from the link the login page emails them, and connect this assistant to have it set things up.
Input Schema
{
"type": "object",
"properties": {
"email": {
"description": "The email address the person will sign in with",
"type": "string"
},
"fullName": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The person’s full name"
},
"teamName": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The name of their firm or team, which the workspace is named after"
}
},
"required": [
"email",
"fullName",
"teamName"
]
}🟡capital_company_create_fund(request, team, timeZone)
Starts creating a fund for the user: an SPV or a blind pool, with its legal name, expected allocation, strategy, classes and fees, manager and documents. Capital Company’s assistant asks for what is missing and, when it has everything, puts the fund to the user for confirmation before anything is created.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}⚪capital_company_invite_investors(request, team, timeZone)
Starts inviting investors to one of the user’s funds by email address. The assistant resolves the fund, asks for what is missing, and puts the invitations to the user for confirmation before any is sent.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}🟡capital_company_send_subscription_agreements(request, team, timeZone)
Starts sending subscription agreements for signature to investors of one of the user’s funds. The assistant resolves the fund and the commitments and puts the requests to the user for confirmation before any is sent.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}🟡capital_company_send_capital_calls(request, team, timeZone)
Starts sending capital call notices to the investors of a fund class. The assistant resolves the class and its commitments and puts the notices to the user for confirmation before any is sent. It never moves money.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}🟡capital_company_update_fund(request, team, timeZone)
Starts changing settings of one of the user’s funds: the fields they name, nothing else. The assistant puts the change to the user for confirmation before anything is written.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}🟡capital_company_edit_commitment(request, team, timeZone)
Starts editing an existing commitment in one of the user’s funds: the fields they name. The assistant puts the edit, and anything it changes about sent capital calls, to the user for confirmation before anything is written.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}🟡capital_company_create_commitment(request, team, timeZone)
Starts recording a new commitment by an investor in one of the user’s funds. The assistant resolves the fund and the investor, asks for what is missing, and puts the commitment to the user for confirmation before anything is written.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}🟢capital_company_ask(request, team, timeZone)
Answers a question about the user’s team and funds in Capital Company from its records, in Capital Company’s words. Changes nothing.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "What the user asked for, in their own words"
},
"team": {
"description": "The team to act on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"request",
"timeZone"
]
}⚪capital_company_reply(answer, team, timeZone)
Relays the user’s answer to the question Capital Company’s assistant asked last, in their own words, and returns what the assistant says next: another question, or a proposal for the user to confirm.
Input Schema
{
"type": "object",
"properties": {
"answer": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The user’s answer, in their own words"
},
"team": {
"description": "The team the conversation is on, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"answer",
"timeZone"
]
}🔴capital_company_confirm(confirmationId, decision, timeZone)
Relays the user’s own answer, confirm or decline, to a Confirmation Capital Company’s assistant put to them. Confirming runs the operation; declining lets the assistant ask what to change.
Input Schema
{
"type": "object",
"properties": {
"confirmationId": {
"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": "The Confirmation the user was shown, from the link the assistant’s answer carried"
},
"decision": {
"type": "string",
"enum": [
"confirm",
"decline"
],
"description": "What the user said, in so many words"
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"confirmationId",
"decision",
"timeZone"
]
}🟢capital_company_show_confirmation(confirmationId)
Shows the user a Confirmation named in Capital Company’s reply on Capital Company’s card, where they confirm or decline it themselves. Changes nothing.
Input Schema
{
"type": "object",
"properties": {
"confirmationId": {
"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": "The Confirmation Capital Company’s reply named"
}
},
"required": [
"confirmationId"
]
}⚪capital_company_claim(confirmationId, email, timeZone)
For someone who started without a Capital Company account and said yes to a proposal: emails a link to the address they will sign in with. Opening it verifies the address and creates what they said yes to.
Input Schema
{
"type": "object",
"properties": {
"confirmationId": {
"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": "The Confirmation the user said yes to"
},
"email": {
"description": "The email address the user will sign in with",
"type": "string"
},
"timeZone": {
"type": "string",
"minLength": 1,
"description": "The user’s IANA time zone, such as America/New_York"
}
},
"required": [
"confirmationId",
"email",
"timeZone"
]
}🟢capital_company_conversation(team)
Reads the user’s current conversation with Capital Company’s assistant, including the outcome of anything they confirmed, and whether it is waiting on them.
Input Schema
{
"type": "object",
"properties": {
"team": {
"description": "The team whose conversation to read, by name, only when the user belongs to more than one team; leave it out otherwise",
"type": "string",
"minLength": 1
}
}
}Community
Evidence