accueil / serveurs / Fichiers & Documents / com.studocu/studocu
com.studocu/studocu
serveur MCP (Model Context Protocol) · agent-os-service 0.0.1
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.studocu/studocu est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.studocu/studocu » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 18 outils
- add-document-sources≈ 517 tokens
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.
Paramètres, retour & exemple (2)
Paramètresproject_id· string · requis
UUID of the Studocu project that will receive the document sources.document_ids· array · requis
One to ten unique Studocu document IDs returned by search-documents.
Exemple d'appel{"name": "add-document-sources", "arguments": {"project_id": "texte", "document_ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"sources": [], "project_id": "texte"}} - agent-os-session≈ 187 tokens
Use this proof tool to verify that the Agent OS MCP server received a valid delegated Studocu session.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "agent-os-session", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"scopes": [], "subject": "texte", "clientId": "texte", "authenticated": true}} - create-project≈ 427 tokens
Create a Studocu project and optionally configure its emoji and course. A numeric course_id is validated before project creation.
Paramètres, retour & exemple (3)
Paramètresemoji· string · optionneltitle· string · optionnelcourse_id· integer · optionnel
Exemple d'appel{"name": "create-project", "arguments": {"emoji": "texte", "title": "texte", "course_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"emoji": "texte", "title": "texte", "course_id": "texte", "is_mobile": true, "project_id": "texte", "institution_id": "texte"}} - delete-memory≈ 412 tokens
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.
Paramètres, retour & exemple (2)
Paramètreskind· string · requis
Memory kind to delete, e.g. study_preference or project_learning_context.project_id· ? · optionnel
Project UUID for project-local memory; null or omitted deletes global (user-level) memory.
Exemple d'appel{"name": "delete-memory", "arguments": {"kind": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"kind": "texte", "userId": "texte", "deleted": true, "projectId": "texte"}} - get-context≈ 1690 tokens
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 course_id); the field is omitted when detail was not loaded. Empty topic_masteries means that course was loaded and the learner has no practised topics. Use get-course-mastery(course_id) for the practised-topic list when context omitted detail. Agent OS is read-only: chatting or calling this tool does not change mastery. Source of truth is Infinite Practice attempts (identity + course + topic); web IP writes, ACE/mobile/Agent OS only read.
Paramètres, retour & exemple (4)
Paramètrescourse_id· ? · optionnel
Narrow context to a single followed course and its projects.project_id· string · optionnel
Narrow context to a single project by id.active_only· boolean · optionnel
Limit the manifest to active context.recent_only· boolean · optionnel
Limit the manifest to recently active context.
Exemple d'appel{"name": "get-context", "arguments": {"course_id": "texte", "project_id": "texte", "active_only": true, "recent_only": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"data": {}, "aggregates": {}, "generated_at": "texte", "prompt_views": {}, "requested_filters": {}, "context_schema_version": 1}} - get-course-mastery≈ 520 tokens
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- and course-scoped, not chat- or client-scoped — web IP writes it; ACE/mobile/Agent OS only read the same rows. Empty topic_masteries means no IP attempts yet, not a separate client score. Requires course_id.
Paramètres, retour & exemple (1)
Paramètrescourse_id· integer · requis
Course id to load practised-topic Infinite Practice mastery for.
Exemple d'appel{"name": "get-course-mastery", "arguments": {"course_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"course_id": "texte", "topic_masteries": []}} - get-course-syllabus≈ 275 tokens
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.
Paramètres, retour & exemple (1)
Paramètrescourse_id· integer · requis
Studocu course id whose published syllabus should be loaded.
Exemple d'appel{"name": "get-course-syllabus", "arguments": {"course_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"content": "texte", "course_id": "texte"}} - get-project-state≈ 673 tokens
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.
Paramètres, retour & exemple (1)
Paramètresids· array · requis
The project ids to load sources and creations (project state) for. Only projects you can access are returned.
Exemple d'appel{"name": "get-project-state", "arguments": {"ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"projects": []}} - read-artifact≈ 2977 tokens
Read a Studocu project source or creation by its studocu://project/{project_id}/{kind}/{uuid} URI. Returns normalized metadata with explicitly mapped inline content.
Paramètres, retour & exemple (2)
Paramètrescursor· string · optionnel
Opaque continuation cursor returned by a previous read.artifact_id· string · requis
Artifact URI in the form studocu://project/{project_id}/{kind}/{uuid}.
Exemple d'appel{"name": "read-artifact", "arguments": {"artifact_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"details": {}, "projectId": "texte", "artifactId": "texte", "continuations": []}} - read-detached-document≈ 228 tokens
Read a Studocu document directly, without requiring or creating a project source. Use read-artifact for documents attached to a project.
Paramètres, retour & exemple (1)
Paramètresdocument_id· integer · requis
Studocu document ID to read without creating a project source.
Exemple d'appel{"name": "read-detached-document", "arguments": {"document_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"content": "texte"}} - read-memory≈ 507 tokens
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.
Paramètres, retour & exemple (3)
Paramètreskind· string · optionnel
Narrow the result to a single memory kind.scope· string · optionnel · global | project | both
Memory scope to read: global, project, or both. Defaults to global unless project_id is set.project_id· ? · optionnel
Project UUID for project-scoped memory; null or omitted reads global (user-level) memory. Required when scope is project or both.
Exemple d'appel{"name": "read-memory", "arguments": {"kind": "texte", "scope": "global", "project_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"memories": []}} - request-creation≈ 736 tokens
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.
Paramètres, retour & exemple (5)
Paramètrestype· string · requis · quiz | mockExam
The kind of creation to generate: quiz or mockExam.project_id· string · requis
UUID of the Studocu project that will own the new creation.instruction· string · optionnel
Optional free-text hint for the generating agent (e.g. "focus on chapter 3").artifact_ids· array · requis
One to ten unique source artifact IDs (studocu://project/{project_id}/source/{uuid}) to generate from.idempotency_key· string · optionnel
Optional retry key. Agent OS always sends Idempotency-Key to Alpha (this value, or a fingerprint of project/type/sources/instruction). Reuse with a different body is rejected.
Exemple d'appel{"name": "request-creation", "arguments": {"type": "quiz", "project_id": "texte", "artifact_ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"type": "quiz", "status": "created", "artifact_id": "texte", "external_id": "texte"}} - search-courses≈ 483 tokens
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 institution name only — do not show internal IDs. Auto-pick a clear top match; if the shortlist is ambiguous, ask the user to choose by name/code. Resolved IDs are conversation-scoped until a persistence capability owns them.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnelquery· string · requisinstitution_id· integer · optionnel
Exemple d'appel{"name": "search-courses", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"courses": []}} - search-documents≈ 919 tokens
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 is that course's university, not the name you passed. Otherwise pass `course` as name or code, never as a numeric id. `course` is optional extra if you already have `course_id`. Omit unknown filters. Returns matching documents with titles, course and institution info, ratings, and a link to view each on Studocu. Results with `match_type: semantic` are closest matches, not exact keyword hits, and may be only loosely related; check them against the request.
Paramètres, retour & exemple (6)
Paramètreslimit· integer · optionnel
Number of results to return (1-50, default: 10).query· string · requis
Topic/keywords only (e.g. "supply and demand", "microeconomics midterm 2025"). Never put course name, course id, or institution name here — use `institution`, `course`, and `course_id` instead.course· string · optionnel
Course name or code only, e.g. "Economics" or "ECON101". Use when you do not have `course_id`. Never put a numeric id here. Optional extra if you also have `course_id`. Omit entirely if unknown.course_id· integer · optionnel
Numeric Studocu course ID from search-courses `course_id`. Prefer this: it pins the course and overrules `course` name/code. Omit if you only have a name/code.institution· string · optionnel
Institution display name only, e.g. "University of Amsterdam". Not an id — this tool has no `institution_id`. Infer it from the user message or conversation context when available; omit entirely if unknown. If `course_id` is also set, `course_id` wins; result institution is that course's university, not this name.use_no_course_as_fallback· boolean · optionnel
Only used with `course_id`. When true and that course has no matching documents, search again without the course, so results may come from other courses; check each result's `course_id`. Default false.
Exemple d'appel{"name": "search-documents", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"documents": []}} - search-institutions≈ 408 tokens
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 capability owns them.
Paramètres, retour & exemple (3)
Paramètrestype· string · optionnel · UNIVERSITY | HIGH_SCHOOLlimit· integer · optionnelquery· string · requis
Exemple d'appel{"name": "search-institutions", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"institutions": []}} - update-project≈ 558 tokens
Update a Studocu project title, emoji, or course. Use course_id null to clear the course and institution.
Paramètres, retour & exemple (4)
Paramètresemoji· string · optionneltitle· string · optionnelcourse_id· ? · optionnelproject_id· string · requis
NOTE: These shared primitives are copied from the AI API spec and owned locally by Agent OS to keep this contract decoupled.
Exemple d'appel{"name": "update-project", "arguments": {"project_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"emoji": "texte", "title": "texte", "course_id": "texte", "is_mobile": true, "project_id": "texte", "institution_id": "texte"}} - write-artifact≈ 3534 tokens
Create a Studocu artifact from typed content. Provide project_id and an artifact envelope; the artifact type defines the required content shape.
Paramètres, retour & exemple (2)
Paramètresartifact· ? · requis
The artifact to create. Pick type; each type defines its own content shape.project_id· string · requis
UUID of the Studocu project that will own the artifact.
Exemple d'appel{"name": "write-artifact", "arguments": {"artifact": "texte", "project_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"kind": "texte", "type": "quiz", "title": "texte", "status": "texte", "projectId": "texte", "artifactId": "texte"}} - write-memory≈ 506 tokens
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.
Paramètres, retour & exemple (3)
Paramètreskind· string · requis
Memory kind, e.g. study_preference or project_learning_context.value· object · requis
Freeform memory document. MVP convention is { content: string }.project_id· ? · optionnel
Project UUID for project-local memory; null or omitted stores global (user-level) memory.
Exemple d'appel{"name": "write-memory", "arguments": {"kind": "texte", "value": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"kind": "texte", "value": {}, "userId": "texte", "createdAt": "texte", "projectId": "texte", "updatedAt": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».