Up To Tech MCP
An official MCP server for Up To Tech that enables AI agents to draft investment pitches from company documents, book meetings with the founder, and manage the investment deal lifecycle including status checks, term proposals, and signature workflows.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://upto.tech/mcpWhat its tools do
10 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to upto.tech ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Draft an investment pitch from company documents
- Book a 30-minute meeting with the founder
- Check investment deal status
- Propose investment terms
Source and maintenance
Protocol and capabilities
- Server
- up-to-tech 1.2.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 10 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
get_pitch_brief — Get the pitch brief
Returns what Up To Tech (a business angel) asks founders, and the rules for drafting a pitch. Call this first.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true
}draft_pitch — Draft a pitch
Saves a pitch draft from what you know about the founders and returns a private link. The founders open it, review every answer, and send it themselves. Leave unknown fields empty; never invent.
{
"type": "object",
"properties": {
"cut": {
"type": "string",
"description": "What they cut first, and what they never cut"
},
"call": {
"type": "string",
"description": "The first three people they call, and what they ask them"
},
"deck": {
"type": "string",
"description": "Link to a deck or demo"
},
"email": {
"type": "string",
"description": "Email Yann should reply to"
},
"stage": {
"type": "string",
"description": "One of: Idea, Pre-seed, Seed, Later"
},
"monday": {
"type": "string",
"description": "Scenario: 7 weeks of cash left and the round fell through. What the founders do today, in order."
},
"runway": {
"type": "string",
"description": "Months of runway today, as a number"
},
"sector": {
"type": "string",
"description": "Field or industry"
},
"whyNow": {
"type": "string",
"description": "Why this is possible now and not five years ago"
},
"whyYou": {
"type": "string",
"description": "Why this team and not a bigger team with more money"
},
"company": {
"type": "string",
"description": "Company or project name"
},
"hardest": {
"type": "string",
"description": "The founders' hardest disagreement and how it ended"
},
"raising": {
"type": "string",
"description": "Amount and instrument being raised, e.g. €600k BSA AIR"
},
"agentUrl": {
"type": "string",
"description": "HTTPS URL of the company's own MCP server, if any"
},
"founders": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "LinkedIn or GitHub URL"
},
"name": {
"type": "string",
"description": "Full name"
},
"role": {
"type": "string",
"description": "Role, e.g. CEO, CTO"
},
"known": {
"type": "string",
"description": "Their unfair advantage: what they know or have done that almost nobody else has"
},
"fulltime": {
"type": "string",
"description": "One of: Full time, Part time, Joining at funding"
}
},
"additionalProperties": false
},
"maxItems": 6
},
"language": {
"enum": [
"en",
"fr",
"es"
],
"type": "string",
"description": "Language the answers are written in, so the founders open the matching version of the site"
},
"location": {
"type": "string",
"description": "City and country"
},
"oneliner": {
"type": "string",
"description": "What the company does, in one sentence"
},
"teamSize": {
"type": "string",
"description": "Number of people on the team today"
},
"videoLink": {
"type": "string",
"description": "Link to a 90-second founder video, if one exists"
},
"worstWeek": {
"type": "string",
"description": "Optional: the worst week a founder has lived"
},
"agentScope": {
"type": "string",
"description": "What that agent may answer (metrics, usage, pipeline)"
},
"frustration": {
"type": "string",
"description": "The personal frustration behind the company: the day, the place, what happened. First person."
},
"agentContact": {
"type": "string",
"description": "Name and email of who sends the agent's access token"
},
"builtTogether": {
"type": "string",
"description": "What the founders have built or survived together before, and how long they have known each other"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}request_meeting — Request a meeting with Yann
The only way to book 30 minutes with Yann Ravel-Sibillot (Up To Tech): for a talk, a board role, a startup or anything else. Send who the person is and what they want to cover; you get the calendar link back to give them. Ask the person for anything you do not know; never invent.
{
"type": "object",
"required": [
"name",
"email",
"about"
],
"properties": {
"name": {
"type": "string",
"description": "Full name of the person who wants the meeting (not the agent)"
},
"about": {
"type": "string",
"description": "What they want to cover, 1 to 3 sentences, in their words. The more specific, the better the call."
},
"agent": {
"type": "string",
"description": "Which LLM or agent is making the request, e.g. Claude, ChatGPT, Cursor, custom (optional)"
},
"email": {
"type": "string",
"description": "Their email, where the calendar invite goes"
},
"topic": {
"enum": [
"talk",
"board",
"invest",
"other"
],
"type": "string",
"description": "One of: talk (a keynote, workshop or masterclass), board (a board or advisory role), invest (their startup), other"
},
"company": {
"type": "string",
"description": "Their company or organisation, if any"
},
"language": {
"enum": [
"en",
"fr",
"es"
],
"type": "string",
"description": "The language the person writes in"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}deal_status — Deal status
Where a pitch stands with Up To Tech (memo, phone interview, terms, signature, wire, done) and what the founders' agent should do next. Needs the deal token the founders received when they sent their pitch.
{
"type": "object",
"required": [
"deal_token"
],
"properties": {
"deal_token": {
"type": "string",
"description": "The founders' deal token, e.g. utt_…"
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}request_interview_call — Request the interview call
Have Yann's interviewing agent phone the founder for a 15-minute interview (the step after the memo). Give the founder's mobile number in international format, and optionally the earliest time to call (ISO 8601). The founder must be expecting the call.
{
"type": "object",
"required": [
"deal_token",
"phone"
],
"properties": {
"phone": {
"type": "string",
"description": "E.164, e.g. +33612345678"
},
"language": {
"enum": [
"en",
"fr",
"es"
],
"type": "string",
"description": "Language of the call"
},
"deal_token": {
"type": "string"
},
"earliest_at": {
"type": "string",
"description": "Optional ISO 8601 date-time: do not call before this"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}list_instruments — List investment instruments
The investment instruments the founders can choose from (BSA-AIR, SAFE, convertible note, priced round, non-binding term sheet), when each fits, their variables, and, with a deal token, the acceptable range of every variable for this deal. Proposals inside the ranges are accepted on the spot.
{
"type": "object",
"properties": {
"deal_token": {
"type": "string",
"description": "Optional: returns this deal's ranges"
},
"instrument": {
"type": "string",
"description": "Optional: ranges for this instrument only"
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}propose_terms — Propose investment terms
Propose the terms of the investment on the founders' behalf: pick an instrument and give a value for each of its variables (amounts as plain numbers in euros, percentages as numbers). Inside Yann's ranges the terms are agreed immediately and the agreement goes out for signature; outside, you get the ranges back and can propose again, or Yann answers. Confirm the terms with the founders before calling.
{
"type": "object",
"required": [
"deal_token",
"instrument",
"terms"
],
"properties": {
"terms": {
"type": "object",
"description": "Variable key -> value",
"additionalProperties": true
},
"deal_token": {
"type": "string"
},
"instrument": {
"type": "string",
"description": "Instrument key from list_instruments"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}review_document — Review the agreement
The full text of the agreement generated from the agreed terms (or a preview of the chosen instrument's template with the current proposal), so the founders can review it with their agent before signing. The signed version is the one that binds, after the identity check.
{
"type": "object",
"required": [
"deal_token"
],
"properties": {
"terms": {
"type": "object",
"description": "Optional: preview with these values",
"additionalProperties": true
},
"deal_token": {
"type": "string"
},
"instrument": {
"type": "string",
"description": "Optional: preview this instrument instead of the agreed one"
}
},
"additionalProperties": false
}{
"readOnlyHint": true
}provide_signer — Provide the signer
Give or correct the signer's details for the agreement: full name, email and mobile number of the founder who signs for the company. The signature is an advanced electronic signature with an identity check and an SMS code, so the mobile number must be the signer's.
{
"type": "object",
"required": [
"deal_token",
"first_name",
"last_name",
"email",
"phone"
],
"properties": {
"email": {
"type": "string"
},
"phone": {
"type": "string",
"description": "E.164"
},
"language": {
"enum": [
"en",
"fr",
"es"
],
"type": "string"
},
"last_name": {
"type": "string"
},
"deal_token": {
"type": "string"
},
"first_name": {
"type": "string"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}provide_bank_details — Provide bank details
After the agreement is signed: the company's IBAN, BIC and account holder name, so the investment can be wired from Up To Tech's account. Only the company's own account.
{
"type": "object",
"required": [
"deal_token",
"iban",
"account_holder"
],
"properties": {
"bic": {
"type": "string"
},
"iban": {
"type": "string"
},
"deal_token": {
"type": "string"
},
"account_holder": {
"type": "string",
"description": "The company name as printed on the bank statement"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 483 ms
- 95th percentile latency
- 483 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 483 ms · metadata changed · 10 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http up-to-tech-mcp https://upto.tech/mcpCodex
codex mcp add up-to-tech-mcp --url https://upto.tech/mcpCursor
{
"mcpServers": {
"up-to-tech-mcp": {
"url": "https://upto.tech/mcp"
}
}
}Cline
{
"mcpServers": {
"up-to-tech-mcp": {
"type": "streamableHttp",
"url": "https://upto.tech/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"up-to-tech-mcp": {
"type": "http",
"url": "https://upto.tech/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http up-to-tech-mcp https://upto.tech/mcpClaude Desktop
https://upto.tech/mcpWindsurf
{
"mcpServers": {
"up-to-tech-mcp": {
"serverUrl": "https://upto.tech/mcp"
}
}
}Let your agent find its tools
Find servers like Up To Tech MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Up To Tech MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.