ResearchPilot
Plan and verify evidence-aware research workflows with specialist execution receipts.
Should I use this
Quality & Safety
Findings (14)
- LOWin researchpilot_search_literature
- LOWin researchpilot_research_registry
- LOWin researchpilot_build_collection_recipe
- LOWin researchpilot_content_analysis_template
- LOWin researchpilot_text_analysis_pilot
- LOWin researchpilot_read_handoff_evidence
- LOWin researchpilot_get_project_context
- LOWin researchpilot_update_user_preferences
- LOWin researchpilot_record_routing_feedback
- LOWin researchpilot_list_work_artifacts
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": {
"researchpilot": {
"url": "https://researchpilot-academy-production.up.railway.app/mcp"
}
}
}Remote endpoints
https://researchpilot-academy-production.up.railway.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (23)
🟢researchpilot_open_workspace
Open the interactive ResearchPilot workspace when the user wants to select a project, inspect method capability, review research context, or edit an instruction before continuing in the host AI conversation.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢researchpilot_capabilities
Read canonical ResearchPilot capability authority. Use this before claiming that ResearchPilot can directly execute a research method.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢researchpilot_check_method(capabilityId)
Check one ResearchPilot capability by canonical capability ID and distinguish discussion/planning, direct execution, certified core, registered engine, and specialist handoff.
Input Schema
{
"type": "object",
"properties": {
"capabilityId": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"capabilityId"
],
"additionalProperties": false
}🟢researchpilot_search_literature(query)
Search research literature through ResearchPilot's OpenAlex/Crossref adapter. Bibliographic verification is not scientific-quality or full-text verification.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢researchpilot_search_datasets(query, scope)
Search ResearchPilot dataset/data-paper providers with explicit provider availability states. Returned records remain source candidates, not automatic dataset-fit approval.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"scope": {
"type": "string",
"enum": [
"korean",
"international",
"all"
],
"default": "all"
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢researchpilot_research_registry(kind, query, limit)
Search ResearchPilot's unified method/model, source-provider, official-reference, or planned-plugin registry. Planning/discovery only; registry presence never authorizes execution or collection.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"methods",
"sourceProviders",
"references",
"plugins"
]
},
"query": {
"type": "string",
"maxLength": 500
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 12
}
},
"required": [
"kind"
],
"additionalProperties": false
}🟢researchpilot_build_collection_recipe(goal, sourceType, query, period, targetSize)
Build a reproducible collection plan for YouTube metadata, web text, legal references, data APIs, or a bounded text corpus. This returns a plan only and never claims collection occurred.
Input Schema
{
"type": "object",
"properties": {
"goal": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"sourceType": {
"type": "string",
"enum": [
"youtube",
"web",
"legal",
"data_api",
"text_corpus"
]
},
"query": {
"type": "string",
"maxLength": 1000
},
"period": {
"type": "string",
"maxLength": 500
},
"targetSize": {
"type": "integer",
"minimum": 1,
"maximum": 10000000
}
},
"required": [
"goal",
"sourceType"
],
"additionalProperties": false
}🟢researchpilot_content_analysis_template(researchQuestion, approach, codingMode)
Create a bounded content-analysis codebook and validation skeleton with sampling/coding/context units, category contracts, pilot coding and human/AI validation requirements. Categories remain researcher proposals.
Input Schema
{
"type": "object",
"properties": {
"researchQuestion": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"approach": {
"type": "string",
"enum": [
"deductive",
"inductive",
"hybrid"
],
"default": "hybrid"
},
"codingMode": {
"type": "string",
"enum": [
"human",
"ai",
"hybrid"
],
"default": "hybrid"
}
},
"required": [
"researchQuestion"
],
"additionalProperties": false
}🟢researchpilot_text_analysis_pilot(researchQuestion, sourceType, query, period, targetSize, ...)
Create a bounded text-analysis pilot package: collection recipe, codebook skeleton, corpus manifest, pilot/validation plan, AG-UI state, and specialist handoff route. Design only; no coding or validation is claimed.
Input Schema
{
"type": "object",
"properties": {
"researchQuestion": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"sourceType": {
"type": "string",
"enum": [
"youtube",
"web",
"legal",
"data_api",
"text_corpus"
],
"default": "text_corpus"
},
"query": {
"type": "string",
"maxLength": 1000
},
"period": {
"type": "string",
"maxLength": 500
},
"targetSize": {
"type": "integer",
"minimum": 1,
"maximum": 10000000
},
"approach": {
"type": "string",
"enum": [
"deductive",
"inductive",
"hybrid"
],
"default": "hybrid"
},
"codingMode": {
"type": "string",
"enum": [
"human",
"ai",
"hybrid"
],
"default": "hybrid"
},
"corpusItems": {
"type": "array",
"maxItems": 200,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"title": {
"type": "string",
"maxLength": 500
},
"source": {
"type": "string",
"maxLength": 1000
},
"text": {
"type": "string",
"maxLength": 200000
},
"digest": {
"type": "string",
"maxLength": 240
},
"provenance": {
"type": "string",
"maxLength": 1000
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"categories": {
"type": "array",
"maxItems": 100,
"items": {
"type": "string",
"maxLength": 240
}
}
},
"required": [
"researchQuestion"
],
"additionalProperties": false
}🟢researchpilot_handoff_summary(handoff)
Validate the outer ResearchPilot specialist handoff identity and return a bounded context summary without source bodies. Use the original handoff package as the authority.
Input Schema
{
"type": "object",
"properties": {
"handoff": {
"type": "object"
}
},
"required": [
"handoff"
],
"additionalProperties": false
}🟢researchpilot_handoff_context(handoff)
Read the immutable ResearchContext snapshot carried by a ResearchPilot handoff, including an evidence catalog without source bodies. This does not mutate Studio state or authorize execution.
Input Schema
{
"type": "object",
"properties": {
"handoff": {
"type": "object"
}
},
"required": [
"handoff"
],
"additionalProperties": false
}🟢researchpilot_read_handoff_evidence(handoff, sourceId, offset)
Read one exact evidence page from a ResearchPilot handoff after verifying the outer source digest against the immutable ResearchContext snapshot.
Input Schema
{
"type": "object",
"properties": {
"handoff": {
"type": "object"
},
"sourceId": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
}
},
"required": [
"handoff",
"sourceId"
],
"additionalProperties": false
}🟢researchpilot_get_profile
Return the authenticated ResearchPilot user profile for the current OAuth connection. Use only for user identity/personalization, not as research evidence.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"pattern": "\\S"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"nickname": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢researchpilot_list_projects
List the authenticated user's active ResearchPilot projects, newest first. Use before choosing a project when the user's phrase such as 'my study' is ambiguous.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢researchpilot_get_project_context(projectId)
Read one authenticated user's cloud ResearchPilot project state: research question, decisions, analysis/result summaries, stale state, source identities/digests and local-artifact availability. Raw local research files are intentionally absent.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}🟢researchpilot_get_user_memory
Read the authenticated user's ResearchPilot working preferences and bounded routing history. These are workflow/presentation signals, never scientific authority.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡researchpilot_update_user_preferences(answerStyle, resultFirst, writingVoice, avoidTextbookStyle, preferEvidenceBeforeAdvice, ...)
Update bounded ResearchPilot working/writing preferences only when the user explicitly states a stable preference. These preferences affect presentation/workflow, never scientific authority or method validity.
Input Schema
{
"type": "object",
"properties": {
"answerStyle": {
"type": [
"string",
"null"
],
"enum": [
"concise",
"standard",
"deep",
null
]
},
"resultFirst": {
"type": [
"boolean",
"null"
]
},
"writingVoice": {
"type": [
"string",
"null"
],
"enum": [
"restrained",
"analytic",
"argumentative",
null
]
},
"avoidTextbookStyle": {
"type": [
"boolean",
"null"
]
},
"preferEvidenceBeforeAdvice": {
"type": [
"boolean",
"null"
]
},
"preferredOutput": {
"type": [
"string",
"null"
],
"enum": [
"chat",
"word",
"markdown",
null
]
},
"discipline": {
"type": [
"string",
"null"
],
"maxLength": 200
},
"targetGenre": {
"type": [
"string",
"null"
],
"enum": [
"journal_article",
"research_proposal",
"policy_report",
"presentation",
"general",
null
]
},
"citationStyle": {
"type": [
"string",
"null"
],
"maxLength": 100
}
},
"additionalProperties": false
}⚪researchpilot_record_routing_feedback(projectId, taskFamily, capabilityId, toolName, outcome, ...)
Record explicit user feedback about a ResearchPilot capability/tool outcome. Call only when the user explicitly accepts, rejects, corrects, or reports failure/success. Do not store the user's full research question or source text.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": [
"string",
"null"
],
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"taskFamily": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"capabilityId": {
"type": [
"string",
"null"
],
"maxLength": 160
},
"toolName": {
"type": [
"string",
"null"
],
"maxLength": 200
},
"outcome": {
"type": "string",
"enum": [
"SUCCEEDED",
"FAILED",
"ACCEPTED",
"REJECTED",
"CORRECTED"
]
},
"feedback": {
"type": [
"string",
"null"
],
"maxLength": 1000
}
},
"required": [
"taskFamily",
"outcome"
],
"additionalProperties": false
}🟢researchpilot_list_work_artifacts(projectId)
List saved working artifacts for one authenticated ResearchPilot project. Use this to continue prior host-AI plans, interpretations, critiques, or drafts without treating them as researcher-approved canonical decisions.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"required": [
"projectId"
],
"additionalProperties": false
}🟢researchpilot_read_work_artifact(projectId, artifactId)
Read one saved working artifact after verifying that both project and artifact belong to the authenticated ResearchPilot owner.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"artifactId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
}
},
"required": [
"projectId",
"artifactId"
],
"additionalProperties": false
}🟢researchpilot_prepare_specialist_execution(projectId, capabilityId, requestedWork, rigor, requiredOutputs)
Prepare a rigorous specialist execution request bound to the authenticated project, exact ResearchContext digest, capability authority, and input artifact digests. This does not execute the analysis or transfer local raw files.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"capabilityId": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"requestedWork": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"rigor": {
"type": "string",
"enum": [
"STANDARD",
"HIGH",
"INDEPENDENT_VALIDATION_REQUIRED"
],
"default": "HIGH"
},
"requiredOutputs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 50
}
},
"required": [
"projectId",
"capabilityId",
"requestedWork"
],
"additionalProperties": false
}🟢researchpilot_validate_specialist_receipt(request, receipt)
Validate a specialist execution receipt against its ResearchPilot request and authenticated project/context identity. This verifies identity, input digests, sample accounting, diagnostics and validation-state structure; it does not independently validate scientific correctness.
Input Schema
{
"type": "object",
"properties": {
"request": {
"type": "object"
},
"receipt": {
"type": "object"
}
},
"required": [
"request",
"receipt"
],
"additionalProperties": false
}🟡researchpilot_save_work_artifact(projectId, contextDigest, kind, title, text, ...)
Save a substantive project-specific plan, interpretation, critique, draft, or specialist result as a non-canonical WORKING artifact. Use for durable ResearchPilot continuity; this never accepts a research decision or authorizes execution.
Input Schema
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
},
"contextDigest": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"kind": {
"type": "string",
"enum": [
"research_plan",
"analysis_interpretation",
"critical_review",
"draft",
"specialist_result",
"research_note"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 200000
},
"sourceRefs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 200
}
},
"required": [
"projectId",
"contextDigest",
"kind",
"title",
"text"
],
"additionalProperties": false
}Community
Evidence