custom_request
Send raw GET or POST requests to EduPage endpoints not covered by dedicated tools using the active session, then inspect the returned status, content type, and text.
Instructions
Send a raw request to the Edupage server using the active session. Can perform writes depending on the endpoint — treat as write-capable.
Args:
url: Absolute URL, or a path like '/export/ajax_prevedene_meno.php'
(resolved against https://<subdomain>.edupage.org).
method: 'GET' or 'POST'.
data: Request body (for POST).
headers: JSON string of extra headers, e.g. '{"Accept": "application/json"}'.
subdomain: School whose session to use (defaults to the active).
Returns:
dict: {'status_code': int, 'content_type': str, 'bytes': int,
'text': str, 'truncated': bool}. bytes is the raw body length and
text is it decoded.
Notes:
- Low-level escape hatch for endpoints not covered by the dedicated
tools — prefer those when available. Parse the returned text
yourself; fields are not pre-serialized.
- Text only. A binary body (an Office/PDF/image/video attachment) is
refused rather than returned as lossily-decoded errors="replace"
garbage; use download_attachment(url=…, subdomain=…), which
writes the raw bytes to disk and accepts any authenticated attachment
URL.
- text is capped at 60000 characters so the cap is this tool's, not the MCP
client's silent one. EduPage's own pages ignore Range, so a
truncated text body cannot be paged through: narrow the request
instead (a more specific path or a dedicated tool), or save the whole
body with download_attachment.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| data | No | ||
| method | Yes | ||
| headers | No | {} | |
| subdomain | No |