Remote MCP configuration
Add this entry to your Cursor MCP configuration, then enable the server.
{
"mcpServers": {
"yaad": {
"url": "https://yaad.adnantariq.pk/mcp"
}
}
}YAAD Agent MCP lets Cursor, Claude Code, ChatGPT, and compatible clients read your application workspace and submit cited create, update, or delete proposals. Nothing changes until you approve it inside YAAD.
The client searches the web and gathers public sources.
YAAD validates evidence and stores a pending proposal.
You compare the field diff, sources, and warnings.
Approval rechecks ownership and version atomically.
Use the exact HTTPS endpoint below. The client discovers Clerk OAuth, opens your browser, and asks you to sign in and consent. Use the same YAAD account that owns the applications you want the agent to access.
https://yaad.adnantariq.pk/mcpHTTPS · OAuth · POSTAdd this entry to your Cursor MCP configuration, then enable the server.
{
"mcpServers": {
"yaad": {
"url": "https://yaad.adnantariq.pk/mcp"
}
}
}Run the command, open /mcp, select YAAD, and authenticate.
claude mcp add --transport http yaad https://yaad.adnantariq.pk/mcpAdd the remote endpoint from ChatGPT's custom app flow and let it scan the tools. Full MCP write support is currently documented for Business and Enterprise/Edu; Pro supports read/fetch custom MCP use. Availability can change.
OpenAI's current MCP availability ↗Use Streamable HTTP with OAuth discovery and dynamic client registration. YAAD is stateless: it does not expose SSE or require Redis-backed sessions.
GET /.well-known/oauth-protected-resource/mcpGET /.well-known/oauth-authorization-serverPOST /mcpRead the schema and existing applications before researching.
Prefer official program and institution pages; keep public URLs.
Run the validation tool and correct evidence or duplicate warnings.
Submit one idempotent proposal, then send the user to YAAD review.
yaad_get_application_schemaRead fields, enums, and safety rules before composing data.
yaad_list_applicationsPage through the signed-in user's application summaries.
yaad_get_applicationRead one application and sanitized document metadata.
yaad_validate_application_proposalCheck evidence, URLs, duplicates, versions, and document rules without storing.
yaad_propose_application_createPlace a researched application into the human-review queue.
yaad_propose_application_updatePropose a version-bound field patch for an existing application.
yaad_propose_application_deleteRequest a cascade delete; YAAD still requires two confirmations.
yaad_list_application_proposalsRead pending or historical proposals with cursor pagination.
yaad_get_application_proposalInspect one proposal, its evidence, warnings, client, and decision state.
List tools use cursor pagination with a default of 20 and a maximum of 50. Proposal responses include the proposal ID, status, review URL, warnings, and whether the result was an idempotent replay.
Ask for the schema, then list applications so the agent can avoid duplicate work.
Tool: yaad_list_applications
{
"limit": 20,
"status": "applying",
"query": "Cambridge"
}Validate the complete proposal before storing it. Every researched field points to an official source ID.
Tool: yaad_validate_application_proposal
{
"action": "create",
"payload": {
"scholarshipName": "Example Global Scholarship",
"applicationType": "Scholarship",
"institution": "Example University",
"country": "United Kingdom",
"degreeLevel": "Master's",
"funding": "Full tuition and living stipend",
"status": "saved",
"deadline": 1798761599000
},
"sources": [
{
"id": "official-program",
"url": "https://example.edu/scholarships/global",
"title": "Official scholarship page",
"accessedAt": 1786316400000,
"kind": "official"
}
],
"fieldEvidence": [
{ "field": "scholarshipName", "sourceIds": ["official-program"] },
{ "field": "institution", "sourceIds": ["official-program"] },
{ "field": "country", "sourceIds": ["official-program"] },
{ "field": "degreeLevel", "sourceIds": ["official-program"] },
{ "field": "funding", "sourceIds": ["official-program"] },
{ "field": "deadline", "sourceIds": ["official-program"] }
]
}Use a stable key for the logical operation. Retrying the same request returns the original proposal.
Tool: yaad_propose_application_create
{
"payload": {
"scholarshipName": "Example Global Scholarship",
"applicationType": "Scholarship",
"institution": "Example University",
"country": "United Kingdom",
"degreeLevel": "Master's",
"funding": "Full tuition and living stipend",
"status": "saved",
"deadline": 1798761599000
},
"sources": [
{
"id": "official-program",
"url": "https://example.edu/scholarships/global",
"title": "Official scholarship page",
"accessedAt": 1786316400000,
"kind": "official"
}
],
"fieldEvidence": [
{ "field": "scholarshipName", "sourceIds": ["official-program"] },
{ "field": "institution", "sourceIds": ["official-program"] },
{ "field": "country", "sourceIds": ["official-program"] },
{ "field": "degreeLevel", "sourceIds": ["official-program"] },
{ "field": "funding", "sourceIds": ["official-program"] },
{ "field": "deadline", "sourceIds": ["official-program"] }
],
"reason": "Add a researched scholarship for human review.",
"idempotencyKey": "example-global-scholarship-2027-v1"
}Read updatedAt first. YAAD marks the proposal conflicted if the application changes before approval.
Tool: yaad_propose_application_update
{
"applicationId": "<application-id>",
"baseUpdatedAt": 1786316400000,
"patch": {
"deadline": 1799366399000,
"funding": "Full tuition, travel, and monthly stipend"
},
"sources": [
{
"id": "official-update",
"url": "https://example.edu/scholarships/global/dates",
"title": "Official dates and funding",
"accessedAt": 1786402800000,
"kind": "official"
}
],
"fieldEvidence": [
{ "field": "deadline", "sourceIds": ["official-update"] },
{ "field": "funding", "sourceIds": ["official-update"] }
],
"reason": "Refresh the deadline and funding from the official notice.",
"idempotencyKey": "example-global-update-2027-v1"
}AUTH_REQUIREDReconnect and complete Clerk login and consent.
VALIDATION_ERRORCorrect the cited fields, URL, payload, or document linkage.
NOT_FOUNDThe owned application or proposal does not exist.
FORBIDDENThe operation crosses an ownership or document boundary.
CONFLICTThe target changed after the agent read its updatedAt value.
RATE_LIMITEDWait for the read/proposal window or review pending proposals.
BRIDGE_UNAVAILABLEThe secure Vercel-to-Convex bridge could not complete the request.
Remove the stale client registration and reconnect so Dynamic Client Registration stores the client's current loopback callback. For MCP Inspector, use a fresh callback port and relogin.
Enter the exact public HTTPS endpoint—https://yaad.adnantariq.pk/mcp—in the custom app flow. Confirm your plan/workspace has developer mode access and let ChatGPT scan the tools. If the message remains before OAuth or any server request appears, it is a ChatGPT URL-safety decision rather than a YAAD validation error; the same endpoint can still be used with Cursor and Claude Code.
Reconnect and complete Clerk consent. OAuth clients should requestopenid profile email; clients that need renewal may also request offline_access when advertised by the provider.
The application changed after the agent read it. Fetch the current application again, reconstruct the patch against its newupdatedAt, validate, and submit a new idempotency key.