{"apiVersion":"v1","directorySlug":"studocu-mcp-45d08ed32d","title":"Studocu","description":null,"pageUrl":"https://www.mcpbundles.com/skills/studocu-mcp-45d08ed32d","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.studocu.com/mcp","hostedMcpUrl":null,"toolCount":18,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.studocu/studocu-mcp-45d08ed32d","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"search-documents","description":"Use this when the user wants to find, search, or browse study documents, lecture notes, summaries, or course materials on Studocu. Pass topic/keywords as `query` only — never put course name, course id, or institution name in `query`. `institution` is a display name only (this tool has no institution_id). Prefer numeric `course_id` from search-courses when you have it: it pins the course and overrules `course`. If both `course_id` and `institution` are sent, `course_id` wins; result institution","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"query":{"type":"string","minLength":1},"course":{"type":"string"},"course_id":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"institution":{"type":"string"},"use_no_course_as_fallback":{"type":"boolean"}}},"title":"Document Search","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search-documents","displayName":"Document Search"},{"name":"search-institutions","description":"Search Studocu institutions by name when establishing or correcting education context (onboarding / context setup). Do not require this before every document search. Structured results include id, name, type, region_code, and country for follow-up tools. When talking to the user, present name/type/country/region only — do not show internal IDs. Auto-pick a clear top match; if the shortlist is ambiguous, ask the user to choose by name. Resolved IDs are conversation-scoped until a persistence capa","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"type":{"enum":["UNIVERSITY","HIGH_SCHOOL"],"type":"string"},"limit":{"type":"integer","default":3,"maximum":10,"minimum":1},"query":{"type":"string","maxLength":200,"minLength":1}}},"title":"Search Institutions","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search-institutions","displayName":"Search Institutions"},{"name":"search-courses","description":"Search Studocu courses when establishing or correcting course context. Prefer institution_id from search-institutions to scope results. Omit institution_id only when the institution is unknown: results then include catalog institution_id, and institution_name when Algolia has it. Do not require this before every document search. Structured results include course_id, name, code (nullable), institution_id, and optional institution_name. When talking to the user, present name, course code, and inst","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"limit":{"type":"integer","default":3,"maximum":10,"minimum":1},"query":{"type":"string","maxLength":200,"minLength":1},"institution_id":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}}},"title":"Search Courses","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"search-courses","displayName":"Search Courses"},{"name":"get-course-syllabus","description":"Return a generated course outline as markdown when this tool has one. This is the best grounding for high-quality study guidance. If it is missing, a syllabus may be generating, so try again in a few minutes. Requires course_id.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["course_id"],"properties":{"course_id":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Get Course Syllabus","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get-course-syllabus","displayName":"Get Course Syllabus"},{"name":"agent-os-session","description":"Use this proof tool to verify that the Agent OS MCP server received a valid delegated Studocu session.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Agent OS Session","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"agent-os-session","displayName":"Agent OS Session"},{"name":"read-artifact","description":"Read a Studocu project source or creation by its studocu://project/{project_id}/{kind}/{uuid} URI. Returns normalized metadata with explicitly mapped inline content. file/image sources also include the photo as an image content block when a viewable image, or an original upload under 5 MB, is available.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["artifact_id"],"properties":{"cursor":{"type":"string","minLength":1},"artifact_id":{"type":"string","minLength":1}}},"title":"Read Studocu Artifact","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read-artifact","displayName":"Read Studocu Artifact"},{"name":"read-detached-document","description":"Read a Studocu document directly, without requiring or creating a project source. Use read-artifact for documents attached to a project.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["document_id"],"properties":{"document_id":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Read Detached Studocu Document","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read-detached-document","displayName":"Read Detached Studocu Document"},{"name":"get-context","description":"Return the unified Agent OS context manifest for the authenticated user: profile, followed courses, project metadata, and recent activity. Every project includes has_course_mastery and started_course_mastery (course supports Infinite Practice / learner has started it). Course mastery is visible only on projects, not followed_courses. Practised-topic detail (topic_masteries) is included only when a course is in scope (project_id, a sole remaining project, or remaining projects that share one cour","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"course_id":{"anyOf":[{"type":"string","minLength":1},{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}]},"project_id":{"type":"string","minLength":1},"active_only":{"type":"boolean"},"recent_only":{"type":"boolean"}}},"title":"Studocu Agent OS Context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get-context","displayName":"Studocu Agent OS Context"},{"name":"get-project-state","description":"Return sources and creations (project state) for one or more projects by id. Creation rows may include external_id (quizId or mockExamId) so a request-creation creating response can be matched once Alpha identity appears. Use after get-context (which lists projects without their sources/creations) to load those projects' artifacts. Only projects you can access are returned.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","minLength":1},"maxItems":20,"minItems":1}}},"title":"Studocu Project State","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get-project-state","displayName":"Studocu Project State"},{"name":"get-course-mastery","description":"Return practised-topic Infinite Practice mastery for a course (topic_id, topic_name when available, display 0–100, questions_answered). Use after get-context flags (has_course_mastery / started_course_mastery) or whenever context omitted topic_masteries. Agent OS is read-only: chatting, creating artifacts, or calling this tool does not change mastery. Source of truth is Infinite Practice attempts (user_topic_mastery: identity + course + topic); display matches the web IP UI. Progress is learner-","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["course_id"],"properties":{"course_id":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Get Infinite Practice Course Mastery","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get-course-mastery","displayName":"Get Infinite Practice Course Mastery"},{"name":"write-artifact","description":"Create a Studocu artifact from typed content. Provide project_id and an artifact envelope; the artifact type defines the required content shape.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["project_id","artifact"],"properties":{"artifact":{"oneOf":[{"type":"object","required":["kind","title","type","content"],"properties":{"kind":{"type":"string","const":"creation"},"type":{"type":"string","const":"quiz"},"content":{"type":"object","required":["questions"],"properties":{"course_id":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"questions":{"type":"array","items":{"type":"object","required":["question","answers","explanation"],"properties":{"answers":{"type":"array","items":{"type":"object","required":["answer","is_correct"],"properties":{"answer":{"type":"string","minLength":1},"is_correct":{"type":"boolean"}},"additionalProperties":false},"minItems":2},"question":{"type":"string","minLength":1},"difficulty":{"enum":["EASY","MEDIUM","HARD"],"type":"string"},"explanation":{"type":"string","maxLength":255,"minLength":1}},"additionalProperties":false},"minItems":1}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","required":["kind","title","type","content"],"properties":{"kind":{"type":"string","const":"creation"},"type":{"type":"string","const":"mockExam"},"content":{"type":"object","required":["exam_json"],"properties":{"exam_json":{"type":"object","required":["schema_version","title","content"],"properties":{"content":{"type":"array","items":{"oneOf":[{"type":"object","required":["kind","id","question_type"],"properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string","const":"section"},"instructions":{"type":"string","minLength":1},"question_type":{"enum":["mcq","multi_select","true_false","fill_in_blank","text_answer_short","text_answer_long"],"type":"string"}},"additionalProperties":false},{"type":"object","required":["kind","id","stimulus_markdown"],"properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string","const":"stimulus"},"stimulus_markdown":{"type":"string","minLength":1}},"additionalProperties":false},{"oneOf":[{"type":"object","required":["kind","id","section_id","type","marks","question_markdown","options"],"properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string","const":"question"},"type":{"enum":["mcq","multi_select","true_false"],"type":"string"},"marks":{"type":"number","minimum":0},"topics":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"grading":{"type":"object","required":["model_answer"],"properties":{"key_points":{"type":"array","items":{"type":"string","minLength":1}},"model_answer":{"type":"string","minLength":1},"correct_answer":{"type":"string"},"correct_answer_ids":{"type":"array","items":{"type":"string","minLength":1}}},"additionalProperties":false},"options":{"type":"array","items":{"type":"object","required":["id","text"],"properties":{"id":{"type":"string","minLength":1},"text":{"type":"string","minLength":1}},"additionalProperties":false},"minItems":2},"section_id":{"type":"string","minLength":1},"stimulus_id_refs":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"question_markdown":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["kind","id","section_id","type","marks","question_markdown"],"properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string","const":"question"},"type":{"type":"string","const":"fill_in_blank"},"marks":{"type":"number","minimum":0},"blanks":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"}},"additionalProperties":false}},"topics":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"grading":{"type":"object","required":["model_answer"],"properties":{"key_points":{"type":"array","items":{"type":"string","minLength":1}},"model_answer":{"type":"string","minLength":1},"correct_answer":{"type":"string"},"correct_answer_ids":{"type":"array","items":{"type":"string","minLength":1}}},"additionalProperties":false},"section_id":{"type":"string","minLength":1},"stimulus_id_refs":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"question_markdown":{"type":"string","minLength":1},"template_markdown":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"object","required":["kind","id","section_id","type","marks","question_markdown"],"properties":{"id":{"type":"string","minLength":1},"kind":{"type":"string","const":"question"},"type":{"enum":["text_answer_short","text_answer_long"],"type":"string"},"marks":{"type":"number","minimum":0},"topics":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"grading":{"type":"object","required":["model_answer"],"properties":{"key_points":{"type":"array","items":{"type":"string","minLength":1}},"model_answer":{"type":"string","minLength":1},"correct_answer":{"type":"string"},"correct_answer_ids":{"type":"array","items":{"type":"string","minLength":1}}},"additionalProperties":false},"section_id":{"type":"string","minLength":1},"stimulus_id_refs":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"question_markdown":{"type":"string","minLength":1}},"additionalProperties":false}]}]},"minItems":1},"front_matter":{"type":"object","properties":{"instructions_markdown":{"type":"string"}},"additionalProperties":false},"schema_version":{"type":"string","const":"0.8"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","required":["kind","title","type","content"],"properties":{"kind":{"type":"string","const":"creation"},"type":{"type":"string","const":"note"},"content":{"type":"object","required":["html"],"properties":{"html":{"type":"string","minLength":1}},"additionalProperties":false}},"additionalProperties":false},{"type":"object","required":["kind","title","type","content"],"properties":{"kind":{"type":"string","const":"creation"},"type":{"type":"string","const":"flashcard"},"content":{"type":"object","required":["flashcards_json"],"properties":{"flashcards_json":{"type":"object","required":["title","description","flashcards"],"properties":{"flashcards":{"type":"array","items":{"type":"object","required":["front","back"],"properties":{"back":{"type":"string","minLength":1},"front":{"type":"string","minLength":1}},"additionalProperties":false},"maxItems":200,"minItems":1}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false}]},"project_id":{"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)$"}}},"title":"Write Studocu Artifact","logicalName":"write-artifact","displayName":"Write Studocu Artifact","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"add-document-sources","description":"Attach up to 10 Studocu documents from search-documents to a project. Returns the sources that were successfully added; compare with document_ids if some were omitted.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["project_id","document_ids"],"properties":{"project_id":{"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)$"},"document_ids":{"type":"array","items":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"maxItems":10,"minItems":1}}},"title":"Add Studocu Document Sources","logicalName":"add-document-sources","displayName":"Add Studocu Document Sources","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create-project","description":"Create a Studocu project and optionally configure its emoji and course. A numeric course_id is validated before project creation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"emoji":{"type":"string","minLength":1},"course_id":{"type":"integer","maximum":9007199254740991,"minimum":1}},"additionalProperties":false},"title":"Create Studocu Project","logicalName":"create-project","displayName":"Create Studocu Project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update-project","description":"Update a Studocu project title, emoji, or course. Use course_id null to clear the course and institution.","inputSchema":{"type":"object","anyOf":[{"required":["title"]},{"required":["emoji"]},{"required":["course_id"]}],"$schema":"http://json-schema.org/draft-07/schema#","required":["project_id"],"properties":{"emoji":{"type":"string","minLength":1},"course_id":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":1},{"type":"null"}]},"project_id":{"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)$"}},"minProperties":2,"additionalProperties":false},"title":"Update Studocu Project","logicalName":"update-project","displayName":"Update Studocu Project","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"request-creation","description":"Generate a Studocu quiz or mockExam from 1-10 project source artifacts. Waits up to ~3 minutes; returns artifact_id and external_id when created, status creating with external_id when persist is not yet visible, or outcome_unknown on client timeout or in-flight duplicate (check get-project-state before retrying). Optional idempotency_key is forwarded as Idempotency-Key; identical retries without a key still dedupe.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["project_id","type","artifact_ids"],"properties":{"type":{"enum":["quiz","mockExam"],"type":"string"},"project_id":{"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)$"},"instruction":{"type":"string","maxLength":6000,"minLength":1},"artifact_ids":{"type":"array","items":{"type":"string","minLength":1},"maxItems":10,"minItems":1},"idempotency_key":{"type":"string","maxLength":256,"minLength":1}}},"title":"Request Studocu Creation","logicalName":"request-creation","displayName":"Request Studocu Creation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"read-memory","description":"Read durable agent memory for the authenticated user. Returns one document per (scope, kind); use project_id for project-scoped memory. Identity comes from Core via the session bearer, not from input.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"kind":{"type":"string","minLength":1},"scope":{"enum":["global","project","both"],"type":"string"},"project_id":{"anyOf":[{"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)$"},{"type":"null"}]}}},"title":"Read Studocu Agent Memory","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"read-memory","displayName":"Read Studocu Agent Memory"},{"name":"write-memory","description":"Upsert one durable memory document per (scope, kind) for the authenticated user. Provide project_id for project-local memory, or null/omit for global. Identity comes from Core via the session bearer, not from input.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["kind","value"],"properties":{"kind":{"type":"string","minLength":1},"value":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"project_id":{"anyOf":[{"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)$"},{"type":"null"}]}}},"title":"Write Studocu Agent Memory","logicalName":"write-memory","displayName":"Write Studocu Agent Memory","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"delete-memory","description":"Delete one durable memory document identified by (scope, kind) for the authenticated user. Provide project_id for project-local memory, or null/omit for global. Identity comes from Core via the session bearer, not from input.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["kind"],"properties":{"kind":{"type":"string","minLength":1},"project_id":{"anyOf":[{"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)$"},{"type":"null"}]}}},"title":"Delete Studocu Agent Memory","logicalName":"delete-memory","displayName":"Delete Studocu Agent Memory","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Studocu&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Auc3R1ZG9jdS5jb20vbWNwIn0%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Studocu%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.studocu.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Studocu%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.studocu.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Studocu&connectorUrl=https%3A%2F%2Fmcp.studocu.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Studocu\" --url \"https://mcp.studocu.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/studocu-mcp-45d08ed32d","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/studocu-mcp-45d08ed32d/tools/{tool}","mcpServerUrl":"https://mcp.studocu.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/studocu-mcp-45d08ed32d?live=1"}