create_project
WRITE
Create a new project from a startup idea description (max 5000 characters).
The create_project tool creates a new CoFounder.im project from a natural-language startup idea description. The project is immediately available for agent runs.
Provide a detailed description of your startup concept. The more context you include (problem, target users, proposed solution, business model), the better the AI agents will perform their analyses.
The project name is automatically generated from the first sentence of the idea description. The project starts with status pending and package_type of basic.
Limits: the idea description maximum is 5000 characters, and project creation is subject to your plan’s project limit. Upgrade if you hit the cap.
After creating a project, use run_agent to start the analysis pipeline. The idea_validator agent is a good first step.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
idea
|
string
|
Required |
Your startup idea description. Be as detailed as possible (max 5000 characters).
Example: A platform that connects early-stage startup founders with fractional CFOs who specialize in SaaS metrics, burn rate optimization, and fundraising readiness. Founders get on-demand financial expertise without a full-time hire.
|
Response Example
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "A platform that connects early-stage startup founders with fractional CFOs",
"description": "A platform that connects early-stage startup founders with fractional CFOs...",
"status": "pending"
}
Errors
| Scenario | Error Message |
|---|---|
| User has reached their plan's project limit |
Error: Project limit reached (5). Upgrade your plan to create more projects.
|
| Idea field fails validation (e.g. too long) |
Error: Validation failed: %{description: ["should be at most 5000 character(s)"]}
|
Code Examples
curl -X POST https://mcp.cofounder.im/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_project",
"arguments": {"idea": "A marketplace for founders to buy and sell validated startup ideas with revenue data and customer interviews included."}
}
}'
{:ok, response} =
Req.post("https://mcp.cofounder.im/mcp",
json: %{
"jsonrpc" => "2.0",
"id" => 1,
"method" => "tools/call",
"params" => %{
"name" => "create_project",
"arguments" => %{"idea" => "A marketplace for founders to buy and sell validated startup ideas with revenue data and customer interviews included."}
}
},
headers: [
{"content-type", "application/json"},
{"authorization", "Bearer YOUR_API_KEY"}
]
)
response.body["result"]["content"]
|> hd()
|> Map.get("text")
|> IO.puts()
import requests
response = requests.post(
"https://mcp.cofounder.im/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_project",
"arguments": {"idea": "A marketplace for founders to buy and sell validated startup ideas with revenue data and customer interviews included."},
},
},
)
data = response.json()
print(data["result"]["content"][0]["text"])
const response = await fetch("https://mcp.cofounder.im/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_API_KEY",
},
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: {
name: "create_project",
arguments: { idea: "A marketplace for founders to buy and sell validated startup ideas with revenue data and customer interviews included." },
},
}),
});
const data = await response.json();
console.log(data.result.content[0].text);
Try It
This sends a real request to your account.