Startup credits, programs and perks that fit your company, from checked, sourced records.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Returns the review Programscape would show a founder, from what they have said about their company (stage, funding, the tools they use, company type and answers to earlier questions): a short read of what matters at their stage, the programs worth their time now with each one’s standing and the questions that settle it, and what can wait and why. For questions about which startup credits, programs or perks fit a company. A standing is never a statement that the founder qualifies, and a standing of “Ask {provider}” means that provider decides on request and publishes no criteria, so the founder’s step is to ask it; each amount is that program’s own figure, never a total; no provider is ranked the winner. The result says how the review can be saved.
The founder’s answers, keyed by question field: the shared questions’ fields or a question a review returned (e.g. "stage": "seed", "funding": ["venture"], "currentProviders": ["aws", "openai"], "companyTypes": ["ai"]). A fact the founder hasn’t given is left out and stays unknown.
The worked-out partner answers a saved plan returned as inferredAnswers, exactly as returned: the review reads them as Programscape worked them out, not as the founder’s own answers, and one from a list that has changed since as unanswered.
Tool list last changed Oct 23, 2026.
Returns the review Programscape would show a founder, from what they have said about their company (stage, funding, the tools they use, company type and answers to earlier questions): a short read of what matters at their stage, the programs worth their time now with each one’s standing and the questions that settle it, and what can wait and why. For questions about which startup credits, programs or perks fit a company. A standing is never a statement that the founder qualifies, and a standing of “Ask {provider}” means that provider decides on request and publishes no criteria, so the founder’s step is to ask it; each amount is that program’s own figure, never a total; no provider is ranked the winner. The result says how the review can be saved.
| Argument | Type | Description |
|---|---|---|
| answers | object | The founder’s answers, keyed by question field: the shared questions’ fields or a question a review returned (e.g. "stage": "seed", "funding": ["venture"], "currentProviders": ["aws", "openai"], "companyTypes": ["ai"]). A fact the founder hasn’t given is left out and stays unknown. |
| inferredAnswers | array | The worked-out partner answers a saved plan returned as inferredAnswers, exactly as returned: the review reads them as Programscape worked them out, not as the founder’s own answers, and one from a list that has changed since as unanswered. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"answers": {
"type": "object",
"description": "The founder’s answers, keyed by question field: the shared questions’ fields or a question a review returned (e.g. \"stage\": \"seed\", \"funding\": [\"venture\"], \"currentProviders\": [\"aws\", \"openai\"], \"companyTypes\": [\"ai\"]). A fact the founder hasn’t given is left out and stays unknown.",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "boolean"
}
]
},
"maxItems": 30
}
]
}
},
"inferredAnswers": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"answer",
"listDated"
],
"properties": {
"field": {
"type": "string",
"maxLength": 80
},
"answer": {
"type": "string",
"const": "yes"
},
"listDated": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "The worked-out partner answers a saved plan returned as inferredAnswers, exactly as returned: the review reads them as Programscape worked them out, not as the founder’s own answers, and one from a list that has changed since as unanswered."
}
},
"additionalProperties": false
}Returns families of programs that serve the same goal across providers, side by side, with no winner and no score.
| Argument | Type | Description |
|---|---|---|
| goal | string | Limit to programs serving one goal, e.g. "build" or "save". Leave empty for every goal. |
| stage | string | Limit to programs for one stage, e.g. "seed". Leave empty for every stage. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"goal": {
"enum": [
"build",
"save",
"get_help",
"migrate",
"sell",
"marketing",
"fundraising",
"accelerators",
"community"
],
"type": "string",
"description": "Limit to programs serving one goal, e.g. \"build\" or \"save\". Leave empty for every goal."
},
"stage": {
"enum": [
"idea",
"bootstrapped",
"pre_seed",
"seed",
"series_a",
"series_b_plus",
"growth"
],
"type": "string",
"description": "Limit to programs for one stage, e.g. \"seed\". Leave empty for every stage."
}
},
"additionalProperties": false
}Returns one program’s reviewed record: what it offers, the agent-tool capabilities its product offers where reviewed, who decides, exclusions, official sources and the date checked.
| Argument | Type | Description |
|---|---|---|
| id* | string | A program id as it appears in program records (e.g. "aws.activate-credits"), its page slug (e.g. "aws-activate-credits"), its page link, or its exact name. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A program id as it appears in program records (e.g. \"aws.activate-credits\"), its page slug (e.g. \"aws-activate-credits\"), its page link, or its exact name."
}
},
"additionalProperties": false
}Returns the founder’s saved Programscape plan: their answers, the programs they kept or set aside (a kept program says whether the founder marked it approved; an approved one carries the expiration date and award the founder entered, and its last reported balance and reminder number, when it has them), and their review as it stands today on those answers. For a returning founder asking where things stand or what to do next. Needs the founder’s Programscape sign-in.
| Argument | Type | Description |
|---|---|---|
| planId | string | Which saved plan, if the founder has more than one. Leave out for their most recent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"planId": {
"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": "Which saved plan, if the founder has more than one. Leave out for their most recent."
}
},
"additionalProperties": false
}Only for the admin of a venture firm’s or studio’s perks list on Programscape (for example PSL’s): what needs a look (deals due to re-confirm, linked programs that changed or closed, imported deals not yet checked), how each perk stands, how many founders joined through each invite link (counts under 3 are withheld), and when the partner’s own system last read its feed. Reads only; changes are made on the admin page. A founder gets nothing from it. Needs that admin’s Programscape sign-in.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Only for a founder who joined a venture firm’s or studio’s perks on Programscape through its invite link (for example PSL’s): returns that portfolio’s negotiated deals in the partner’s own words, labelled as the partner’s terms, and the public programs the partner points them to, with their live records. A founder who joined no portfolio gets no deals from it. Needs the founder’s Programscape sign-in.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Returns the shared questions, with their answer options, that shape a founder’s review. A fact the founder hasn’t given stays unknown.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Records the balance a provider shows for one program the founder keeps on their Programscape plan and has marked approved: the amount left, in the unit the provider reports it (US dollars, credits or requests), when it was read, and whether the founder’s own router or their assistant reported it. Optionally sets the number under which the founder wants an email reminder, in the same unit. Returns the balance as stored on the plan, with when it was read and who reported it. It is a report, never an estimate or a total, and it is never added to other programs or set against the amount awarded. Changes nothing else on the plan. Needs the founder’s Programscape sign-in.
| Argument | Type | Description |
|---|---|---|
| asOf | string | When the balance was read from the provider, as an ISO 8601 date and time. Leave out to mean now. |
| unit* | string | The unit the provider reports the balance in: usd, credits or requests. |
| amount* | number | What the provider shows as left, in `unit`, exactly as reported: dollars to the cent, or a whole number of credits or requests. Never an estimate, a conversion or a sum. |
| planId | string | Which saved plan, if the founder has more than one. Leave out for their most recent. |
| source | string | Who is reporting: "router" for the founder’s own credit router, "assistant" for an AI assistant the founder asked. Defaults to "assistant". Only a connection made from a program on the founder’s own computer (a loopback sign-in, as the router’s) can report as "router"; any other reports as "assistant". |
Saves a founder’s review as a one-day draft and returns a link that opens it on programscape.com with their answers and kept programs in place. The founder saves it there with an email code (no password). The link works for 24 hours.
| Argument | Type | Description |
|---|---|---|
| keep | array | Ids of programs the founder chose to keep. Empty or left out when they chose none. |
| answers* | object | The founder’s answers, keyed by question field: the shared questions’ fields or a question a review returned (e.g. "stage": "seed", "funding": ["venture"], "currentProviders": ["aws", "openai"], "companyTypes": ["ai"]). A fact the founder hasn’t given is left out and stays unknown. |
| inferredAnswers | array | The worked-out partner answers a saved plan returned as inferredAnswers, exactly as returned: the review reads them as Programscape worked them out, not as the founder’s own answers, and one from a list that has changed since as unanswered. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"answers"
],
"properties": {
"keep": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50,
"description": "Ids of programs the founder chose to keep. Empty or left out when they chose none."
},
"answers": {
"type": "object",
"description": "The founder’s answers, keyed by question field: the shared questions’ fields or a question a review returned (e.g. \"stage\": \"seed\", \"funding\": [\"venture\"], \"currentProviders\": [\"aws\", \"openai\"], \"companyTypes\": [\"ai\"]). A fact the founder hasn’t given is left out and stays unknown.",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "boolean"
}
]
},
"maxItems": 30
}
]
}
},
"inferredAnswers": {
"type": "array",
"items": {
"type": "object",
"required": [
"field",
"answer",
"listDated"
],
"properties": {
"field": {
"type": "string",
"maxLength": 80
},
"answer": {
"type": "string",
"const": "yes"
},
"listDated": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"additionalProperties": false
},
"maxItems": 20,
"description": "The worked-out partner answers a saved plan returned as inferredAnswers, exactly as returned: the review reads them as Programscape worked them out, not as the founder’s own answers, and one from a list that has changed since as unanswered."
}
},
"additionalProperties": false
}Searches the reviewed catalog of startup credits, programs, support and product discounts across providers (AWS, Google Cloud, Microsoft Azure, OpenAI, Anthropic, NVIDIA, Stripe and more). Each result carries its official source and the date it was last checked. Can be limited to programs whose product offers an agent-tool capability (search, scrape, crawl, browser, extract, llm or sandbox): a program matches when its record lists any one of those asked for, and results keep the catalog’s own order. A result lists its capabilities when its record has been reviewed for them. A listing is not a statement that anyone qualifies.
| Argument | Type | Description |
|---|---|---|
| kind | string | "programs" for startup programs and support, "offers" for product discounts, "all" for both (the default). |
| limit | integer | How many results to return (default 20, at most 50). |
| query | string | Words to match against program names, headlines, products and providers. Leave empty to list everything. |
| provider | string | A provider id such as "aws", "gcp", "openai" or "stripe". Leave empty for every provider. |
| capabilities | array | Agent-tool capabilities, e.g. ["search"] or ["scrape", "crawl"]. A program matches when its record lists any one of them. Leave it out to search every program, including those not reviewed for capabilities. |
Saves answers and program choices to the founder’s own Programscape plan: new or changed answers, programs to keep, programs to set aside. Creates their first plan if they have none. Only what is sent changes; everything else in the plan (notes, progress, contacts) stays as it is. Needs the founder’s Programscape sign-in.
| Argument | Type | Description |
|---|---|---|
| keep | array | Program ids the founder wants to keep in their plan. |
| planId | string | Which saved plan, if the founder has more than one. Leave out for their most recent. |
| answers | object | New or changed answers the founder gave, keyed by question field as in a review’s answers. `firms` is the whole list of who backs the company, never only the newest: a plan never keeps the firms’ names, and a partner answer worked out earlier that the firms sent don’t settle is taken back, so ask for every backer before sending it. |
| setAside | array | Program ids the founder wants to set aside. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"keep": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160
},
"maxItems": 50,
"description": "Program ids the founder wants to keep in their plan."
},
"planId": {
"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": "Which saved plan, if the founder has more than one. Leave out for their most recent."
},
"answers": {
"type": "object",
"description": "New or changed answers the founder gave, keyed by question field as in a review’s answers. `firms` is the whole list of who backs the company, never only the newest: a plan never keeps the firms’ names, and a partner answer worked out earlier that the firms sent don’t settle is taken back, so ask for every backer before sending it.",
"propertyNames": {
"type": "string",
"maxLength": 80
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "boolean"
}
]
},
"maxItems": 30
}
]
}
},
"setAside": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160
},
"maxItems": 50,
"description": "Program ids the founder wants to set aside."
}
},
"additionalProperties": false
}Returns what Programscape’s latest checks against the providers’ own pages found, dated and sourced.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many of the latest re-checks to return (default 3). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many of the latest re-checks to return (default 3)."
}
},
"additionalProperties": false
}| estimate | object | Router only (0151): how long this balance lasts at the recent pace. Shown on the plan labelled as an estimate, with when it was worked out. It never sets an expiration date or a date reminder. Leave out when there is no pace yet. |
| programId* | string | The id of a program the founder keeps on their plan and has marked approved, for example "firecrawl.startup-deal". |
| lowBalanceAt | object | Optional: the number under which the founder asked to be reminded, in the balance’s unit. Replaces the reminder number on the plan. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"programId",
"amount",
"unit"
],
"properties": {
"asOf": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "When the balance was read from the provider, as an ISO 8601 date and time. Leave out to mean now."
},
"unit": {
"enum": [
"usd",
"credits",
"requests"
],
"type": "string",
"description": "The unit the provider reports the balance in: usd, credits or requests."
},
"amount": {
"type": "number",
"description": "What the provider shows as left, in `unit`, exactly as reported: dollars to the cent, or a whole number of credits or requests. Never an estimate, a conversion or a sum."
},
"planId": {
"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": "Which saved plan, if the founder has more than one. Leave out for their most recent."
},
"source": {
"enum": [
"router",
"assistant"
],
"type": "string",
"description": "Who is reporting: \"router\" for the founder’s own credit router, \"assistant\" for an AI assistant the founder asked. Defaults to \"assistant\". Only a connection made from a program on the founder’s own computer (a loopback sign-in, as the router’s) can report as \"router\"; any other reports as \"assistant\"."
},
"estimate": {
"type": "object",
"required": [
"daysLeft"
],
"properties": {
"daysLeft": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "Whole days this balance lasts at the recent pace, as the router worked it out from its own readings."
},
"workedOutAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "When the router worked it out, as an ISO 8601 date and time. Leave out to mean now."
}
},
"description": "Router only (0151): how long this balance lasts at the recent pace. Shown on the plan labelled as an estimate, with when it was worked out. It never sets an expiration date or a date reminder. Leave out when there is no pace yet.",
"additionalProperties": false
},
"programId": {
"type": "string",
"maxLength": 160,
"description": "The id of a program the founder keeps on their plan and has marked approved, for example \"firecrawl.startup-deal\"."
},
"lowBalanceAt": {
"type": "object",
"required": [
"amount",
"unit"
],
"properties": {
"unit": {
"enum": [
"usd",
"credits",
"requests"
],
"type": "string",
"description": "The same unit as the balance."
},
"amount": {
"type": "number",
"description": "The number under which the founder wants a reminder."
}
},
"description": "Optional: the number under which the founder asked to be reminded, in the balance’s unit. Replaces the reminder number on the plan.",
"additionalProperties": false
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"enum": [
"programs",
"offers",
"all"
],
"type": "string",
"description": "\"programs\" for startup programs and support, \"offers\" for product discounts, \"all\" for both (the default)."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many results to return (default 20, at most 50)."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Words to match against program names, headlines, products and providers. Leave empty to list everything."
},
"provider": {
"type": "string",
"maxLength": 40,
"description": "A provider id such as \"aws\", \"gcp\", \"openai\" or \"stripe\". Leave empty for every provider."
},
"capabilities": {
"type": "array",
"items": {
"enum": [
"search",
"scrape",
"crawl",
"browser",
"extract",
"llm",
"sandbox"
],
"type": "string"
},
"maxItems": 7,
"minItems": 1,
"description": "Agent-tool capabilities, e.g. [\"search\"] or [\"scrape\", \"crawl\"]. A program matches when its record lists any one of them. Leave it out to search every program, including those not reviewed for capabilities."
}
},
"additionalProperties": false
}