Studocu
REMOTE · AGENT-OS-MCP.ALPHA.STUDOCU.COM
Find Studocu study documents, courses and institutions, and manage study projects and quizzes.
Available components
Last scanned (23 hours ago)
Scores higher than 57% of remote servers
Reachable. Last reached 17 Oct 2026.
Category Education and Research
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (write-memory). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability81
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2984 tokens (~135/item across 22 items; 20 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
- Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 76% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 17 Oct 26 0
- Resource “search-documents” now points somewhere else: ui://views/apps-sdk/search-documents.html?v=0e30fa45 → ui://views/ext-apps/search-documents.html?v=0e30fa45 security
- 16 Oct 26 +1
- Resource “search-documents” now points somewhere else: ui://views/apps-sdk/search-documents.html?v=0e30fa45 → ui://views/ext-apps/search-documents.html?v=0e30fa45 security
- 15 Oct 26 0
- Resource “search-documents” now points somewhere else: ui://views/apps-sdk/search-documents.html?v=0e30fa45 → ui://views/ext-apps/search-documents.html?v=0e30fa45 security
- 14 Oct 26 +1
- Resource “search-documents” now points somewhere else: ui://views/apps-sdk/search-documents.html?v=0e30fa45 → ui://views/ext-apps/search-documents.html?v=0e30fa45 security
- 13 Oct 26 0
- Resource “search-documents” now points somewhere else: ui://views/apps-sdk/search-documents.html?v=0e30fa45 → ui://views/ext-apps/search-documents.html?v=0e30fa45 security
- Stability: unverified → 0.03 ▲ functional
- 12 Oct 26 65
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 17 Oct 2026 · Probed https://agent-os-mcp.alpha.studocu.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.alpha.studocu.com | CN=WE1,O=Google Trust Services,C=US | 21 Sept 2026 | 20 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | 2e9768343a4e7e2213d268071971cae2 |
| SANs: *.alpha.studocu.com, alpha.studocu.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of agent-os-mcp.alpha.studocu.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| studocu.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://agent-os-mcp.alpha.studocu.com/mcp | Verified | 200 | |
| http (plaintext) | http://agent-os-mcp.alpha.studocu.com/mcp | HTTPS enforced | 301 | https://agent-os-mcp.alpha.studocu.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add-document-sources Add Studocu Document Sources ~84
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.
| Name | Type | Req | Description |
|---|---|---|---|
| document_ids | array | yes | One to ten unique Studocu document IDs returned by search-documents. |
| project_id | string | yes | UUID of the Studocu project that will receive the document sources. |
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | string | yes | – |
| sources | array | yes | – |
No examples provided.
agent-os-session Agent OS Session ~29
Use this proof tool to verify that the Agent OS MCP server received a valid delegated Studocu session.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| authenticated | boolean | yes | – |
| clientId | string | yes | – |
| scopes | array | yes | – |
| subject | string | – | – |
No examples provided.
create-project Create Studocu Project ~53
Create a Studocu project and optionally configure its emoji and course. A numeric course_id is validated before project creation.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | integer | – | – |
| emoji | string | – | – |
| title | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | – | yes | – |
| emoji | string | yes | – |
| institution_id | – | yes | – |
| is_mobile | boolean | yes | – |
| project_id | string | yes | NOTE: These shared primitives are copied from the AI API spec and owned locally by Agent OS to keep this contract decoupled. |
| title | string | yes | Agent-displayable project title. Null Alpha names become "Untitled project". |
No examples provided.
delete-memory Delete Studocu Agent Memory ~98
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | Memory kind to delete, e.g. study_preference or project_learning_context. |
| project_id | – | – | Project UUID for project-local memory; null or omitted deletes global (user-level) memory. |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | yes | Always true when the delete succeeds. |
| kind | string | yes | Memory kind that was deleted. |
| projectId | – | yes | Owning project UUID, or null for global memory. |
| userId | string | yes | Owner of the deleted memory document. |
No examples provided.
get-context Studocu Agent OS Context ~253
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.
| Name | Type | Req | Description |
|---|---|---|---|
| active_only | boolean | – | Limit the manifest to active context. |
| course_id | – | – | Narrow context to a single followed course and its projects. |
| project_id | string | – | Narrow context to a single project by id. |
| recent_only | boolean | – | Limit the manifest to recently active context. |
| Name | Type | Req | Description |
|---|---|---|---|
| aggregates | object | – | – |
| context_schema_version | number | yes | – |
| data | object | yes | – |
| generated_at | string | yes | – |
| prompt_views | object | – | – |
| requested_filters | object | yes | – |
No examples provided.
get-course-mastery Get Infinite Practice Course Mastery ~181
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.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | integer | yes | Course id to load practised-topic Infinite Practice mastery for. |
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Course id whose mastery was loaded, matching followed_courses.course_id. |
| topic_masteries | array | yes | Practised topics only. Empty means this course was loaded and the learner has no IP attempts yet. |
No examples provided.
get-course-syllabus Get Course Syllabus ~56
Return a generated course outline as markdown when this tool has one. This is the best grounding for high-quality study guidance. Requires course_id.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | integer | yes | Studocu course id whose published syllabus should be loaded. |
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Published syllabus text for this course. |
| course_id | string | yes | Course id whose published syllabus was loaded. |
No examples provided.
get-project-state Studocu Project State ~112
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.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | array | yes | The project ids to load sources and creations (project state) for. Only projects you can access are returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| projects | array | yes | – |
No examples provided.
read-artifact Read Studocu Artifact ~82
Read a Studocu project source or creation by its studocu://project/{project_id}/{kind}/{uuid} URI. Returns normalized metadata with explicitly mapped inline content.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | yes | Artifact URI in the form studocu://project/{project_id}/{kind}/{uuid}. |
| cursor | string | – | Opaque continuation cursor returned by a previous read. |
| Name | Type | Req | Description |
|---|---|---|---|
| artifactId | string | yes | – |
| continuations | array | – | – |
| details | object | yes | – |
| projectId | string | yes | – |
No examples provided.
read-detached-document Read Detached Studocu Document ~55
Read a Studocu document directly, without requiring or creating a project source. Use read-artifact for documents attached to a project.
| Name | Type | Req | Description |
|---|---|---|---|
| document_id | integer | yes | Studocu document ID to read without creating a project source. |
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | The raw full text content of the Studocu document. |
No examples provided.
read-memory Read Studocu Agent Memory ~122
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | Narrow the result to a single memory kind. |
| project_id | – | – | Project UUID for project-scoped memory; null or omitted reads global (user-level) memory. Required when scope is project or both. |
| scope | string | – | Memory scope to read: global, project, or both. Defaults to global unless project_id is set. |
| Name | Type | Req | Description |
|---|---|---|---|
| memories | array | yes | Durable memory documents for the authenticated user. |
No examples provided.
read-web-url Read Web URL ~111
Read a specific public URL and return grounded page content for agent evidence. Use this when you already have the exact URL. For Studocu study documents use search-documents; for open-web discovery use search-web. Competitor study-material hosts are rejected.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | Optional focus question or extraction instruction for the page content. |
| url | string | yes | Public http or https URL to read for agent evidence. For Studocu study documents use search-documents; for open-web discovery use search-web. |
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | Grounded text extracted from the URL for agent use. |
| url | string | yes | The requested URL that was read. |
No examples provided.
request-creation Request Studocu Creation ~237
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.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_ids | array | yes | One to ten unique source artifact IDs (studocu://project/{project_id}/source/{uuid}) to generate from. |
| idempotency_key | string | – | 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. |
| instruction | string | – | Optional free-text hint for the generating agent (e.g. "focus on chapter 3"). |
| project_id | string | yes | UUID of the Studocu project that will own the new creation. |
| type | string | yes | The kind of creation to generate: quiz or mockExam. |
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id | string | – | Agent OS artifact ID of the new creation. Present when status is created. |
| external_id | – | – | Kind-specific downstream id (quizId or mockExamId). Present on created and creating; match the same field on get-project-state creation rows. Omitted on timeout. |
| status | string | yes | created: persisted and linked (artifact_id and external_id). creating: generation finished but Alpha identity is not yet visible (external_id matches get-project-state creation rows). outcome_unknown… |
| type | string | yes | – |
No examples provided.
search-courses Search Courses ~170
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.
| Name | Type | Req | Description |
|---|---|---|---|
| institution_id | integer | – | – |
| limit | integer | – | – |
| query | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| courses | array | yes | – |
No examples provided.
search-documents Document Search ~464
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. For open-web sources outside Studocu, use search-web instead.
| Name | Type | Req | Description |
|---|---|---|---|
| course | string | – | 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 | – | 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 | – | 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 u… |
| limit | integer | – | Number of results to return (1-50, default: 10). |
| query | string | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| documents | array | yes | – |
No examples provided.
search-institutions Search Institutions ~135
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| query | string | yes | – |
| type | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| institutions | array | yes | – |
No examples provided.
search-web Web Search ~130
Answer open-web questions with a grounded response and citation URLs (news, reference sites, documentation). Use this for non-Studocu sources. For Studocu study documents, lecture notes, summaries, or course materials, use search-documents instead. Competitor study-material domains are excluded from results.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Open-web question or search prompt (external sources only). For Studocu study documents, lecture notes, or course materials use search-documents instead. |
| site | string | – | Optional domain filter, e.g. "rijksoverheid.nl". Restricts search to that site when supported. |
| Name | Type | Req | Description |
|---|---|---|---|
| citations | array | yes | Sources used for the answer, with title, URL, and domain. |
| text | string | yes | Grounded answer text, including inline citation links when present. |
No examples provided.
update-project Update Studocu Project ~86
Update a Studocu project title, emoji, or course. Use course_id null to clear the course and institution.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | – | – | – |
| emoji | string | – | – |
| project_id | string | yes | NOTE: These shared primitives are copied from the AI API spec and owned locally by Agent OS to keep this contract decoupled. |
| title | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | – | yes | – |
| emoji | string | yes | – |
| institution_id | – | yes | – |
| is_mobile | boolean | yes | – |
| project_id | string | yes | NOTE: These shared primitives are copied from the AI API spec and owned locally by Agent OS to keep this contract decoupled. |
| title | string | yes | Agent-displayable project title. Null Alpha names become "Untitled project". |
No examples provided.
write-artifact Write Studocu Artifact ~74
Create a Studocu artifact from typed content. Provide project_id and an artifact envelope; the artifact type defines the required content shape.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | – | yes | The artifact to create. Pick type; each type defines its own content shape. |
| project_id | string | yes | UUID of the Studocu project that will own the artifact. |
| Name | Type | Req | Description |
|---|---|---|---|
| artifactId | string | yes | Canonical Studocu artifact URI for the created creation. |
| kind | string | yes | Artifact kind returned by the write operation. |
| projectId | string | yes | UUID of the Studocu project that owns the created artifact. |
| status | string | yes | Stable write status for successful creation writes. |
| title | string | yes | Human-readable title of the created artifact. |
| type | string | yes | Creation type that was written. |
No examples provided.
write-memory Write Studocu Agent Memory ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | yes | Memory kind, e.g. study_preference or project_learning_context. |
| project_id | – | – | Project UUID for project-local memory; null or omitted stores global (user-level) memory. |
| value | object | yes | Freeform memory document. MVP convention is { content: string }. |
| Name | Type | Req | Description |
|---|---|---|---|
| createdAt | string | yes | Creation timestamp of the row. |
| kind | string | yes | Memory kind that was written. |
| projectId | – | yes | Owning project UUID, or null for global memory. |
| updatedAt | string | yes | Last write timestamp of the row. |
| userId | string | yes | Owner of the memory document. |
| value | object | yes | Stored memory document. |
No examples provided.
How do I install the Studocu MCP server?
Studocu is a hosted endpoint at https://agent-os-mcp.alpha.studocu.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · agent-os-mcp.alpha.studocu.com
claude mcp add --transport http com-studocu-studocu 'https://agent-os-mcp.alpha.studocu.com/mcp'
What is the Studocu MCP server?
Studocu is an MCP server listed in the public MCP registry as com.studocu/studocu. Find Studocu study documents, courses and institutions, and manage study projects and quizzes. This page covers its hosted endpoint (https://agent-os-mcp.alpha.studocu.com/mcp).
Is the Studocu MCP server safe to use?
Studocu scores 67 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Studocu MCP server expose?
Studocu exposes 20 tools: search-documents, search-institutions, search-courses, search-web, get-course-syllabus, and 15 more. Their descriptions and schemas cost roughly 2,648 tokens of context every time the server is loaded.
Does the Studocu MCP server require authentication?
No. We connected to Studocu without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Studocu MCP server still maintained?
Studocu is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.