io.github.Smartoire/paxaver-mcp
REMOTE · MCP.PAXAVER.COM · SCANNED SEP 20
MCP adapter for the Paxaver school community platform. Streamable HTTP, OAuth 2.1, capability auth.
Available components
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 Security97
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability87
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3814 tokens (~127/item across 30 items; 26 tools + 4 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 Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- 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 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the io.github.Smartoire/paxaver-mcp server?
io.github.Smartoire/paxaver-mcp is a hosted endpoint at https://mcp.paxaver.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 · mcp.paxaver.com
claude mcp add --transport http smartoire-paxaver-mcp 'https://mcp.paxaver.com/mcp'
{
"mcpServers": {
"smartoire-paxaver-mcp": {
"url": "https://mcp.paxaver.com/mcp"
}
}
} {
"servers": {
"smartoire-paxaver-mcp": {
"type": "http",
"url": "https://mcp.paxaver.com/mcp"
}
}
} [mcp_servers.smartoire-paxaver-mcp] url = "https://mcp.paxaver.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"smartoire-paxaver-mcp": {
"type": "remote",
"url": "https://mcp.paxaver.com/mcp",
"enabled": true
}
}
} openclaw mcp add smartoire-paxaver-mcp --url 'https://mcp.paxaver.com/mcp' --transport streamable-http
mcp_servers:
smartoire-paxaver-mcp:
url: "https://mcp.paxaver.com/mcp" {
"McpServers": {
"smartoire-paxaver-mcp": {
"Transport": "http",
"Url": "https://mcp.paxaver.com/mcp"
}
}
} assistant mcp add smartoire-paxaver-mcp -t streamable-http -u 'https://mcp.paxaver.com/mcp'
{
"mcpServers": {
"smartoire-paxaver-mcp": {
"type": "http",
"url": "https://mcp.paxaver.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 20 Sept 26 +1
- Tool “create_menu_item” was removed ▼ security
- Tool “create_event” was removed ▼ security
- Tool “cancel_event” was removed ▼ security
- Tool “cancel_event_registration” was removed ▼ security
- Tool “cancel_order” was removed ▼ security
- Tool “cancel_volunteer_signup” was removed ▼ security
- Tool “create_draft_order” was removed ▼ security
- Tool “create_restaurant” was removed ▼ security
- Tool “delete_menu_item” was removed ▼ security
- Tool “discard_draft_order” was removed ▼ security
- Tool “finalize_order” was removed ▼ security
- Tool “get_menu” was removed ▼ security
- Tool “get_my_event_registrations” was removed ▼ security
- Tool “get_my_volunteer_signups” was removed ▼ security
- Tool “get_orders” was removed ▼ security
- Tool “get_upcoming_events” was removed ▼ security
- Tool “get_user_info” was removed ▼ security
- Tool “get_wallet_balance” was removed ▼ security
- Tool “list_menu_items” was removed ▼ security
- Tool “order_lunch” was removed ▼ security
- Tool “register_event” was removed ▼ security
- Tool “set_daily_menu” was removed ▼ security
- Tool “sign_up_to_volunteer” was removed ▼ security
- Tool “update_draft_order” was removed ▼ security
- Tool “update_event” was removed ▼ security
- Tool “update_menu_item” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- New tool “archive_restaurant_menu_item”, which the server declares destructive security
- New tool “cancel_my_event_registration”, which the server declares destructive security
- New tool “cancel_my_lunch_order”, which the server declares destructive security
- New tool “cancel_my_volunteer_signup”, which the server declares destructive security
- New tool “cancel_school_event”, which the server declares destructive security
- New tool “discard_lunch_order_draft”, which the server declares destructive security
- Tool “list_school_restaurants” rewrote its description, which is the text the model reads security
- Prompt “order_lunch_helper” was removed ▼ functional
- New prompt “lunch_order_helper” functional
- Server version: 2.4.5 → 2.5.0 functional
- New tool “create_lunch_order_draft” functional
- New tool “create_restaurant_menu_item” functional
- New tool “create_school_event” functional
- New tool “create_school_restaurant” functional
- New tool “get_lunch_menu” functional
- New tool “get_my_context” functional
- New tool “get_my_wallet_balance” functional
- New tool “list_my_event_registrations” functional
- New tool “list_my_lunch_orders” functional
- New tool “list_my_volunteer_signups” functional
- New tool “list_restaurant_menu_items” functional
- New tool “list_school_events” functional
- New tool “pay_lunch_order_draft” functional
- New tool “register_for_event” functional
- New tool “schedule_lunch_menu_item” functional
- New tool “sign_up_for_volunteer_shift” functional
- New tool “update_lunch_order_draft” functional
- New tool “update_restaurant_menu_item” functional
- New tool “update_school_event” functional
- 19 Sept 26 0
- New tool “cancel_event_registration”, which the server declares destructive security
- New tool “cancel_volunteer_signup”, which the server declares destructive security
- New tool “discard_draft_order”, which the server declares destructive security
- Tool “create_draft_order” rewrote its description, which is the text the model reads security
- Tool “get_menu” rewrote its description, which is the text the model reads security
- Tool “get_orders” rewrote its description, which is the text the model reads security
- Tool “get_upcoming_events” rewrote its description, which is the text the model reads security
- Tool “get_user_info” rewrote its description, which is the text the model reads security
- Tool “get_wallet_balance” rewrote its description, which is the text the model reads security
- Tool “list_school_restaurants” rewrote its description, which is the text the model reads security
- Tool “order_lunch” rewrote its description, which is the text the model reads security
- Tool “register_event” rewrote its description, which is the text the model reads security
- Tool “sign_up_to_volunteer” rewrote its description, which is the text the model reads security
- Schema quality: 111 → 125 ▼ functional
- Server version: 2.4.3 → 2.4.5 functional
- New tool “get_my_event_registrations” functional
- New tool “get_my_volunteer_signups” functional
- New tool “update_draft_order” functional
- “cancel_event” reworded the description of “event_id” cosmetic
- “cancel_order” reworded the description of “order_id” cosmetic
- “create_draft_order” reworded the description of “school_slug” cosmetic
- “create_draft_order” reworded the description of “student_id” cosmetic
- “finalize_order” reworded the description of “order_id” cosmetic
- “get_menu” reworded the description of “date” cosmetic
- “get_menu” reworded the description of “month” cosmetic
- “get_orders” reworded the description of “menu_date” cosmetic
- “get_orders” reworded the description of “month” cosmetic
- “get_orders” reworded the description of “student_id” cosmetic
- “get_upcoming_events” reworded the description of “end_date” cosmetic
- “get_upcoming_events” reworded the description of “start_date” cosmetic
- “order_lunch” reworded the description of “student_id” cosmetic
- “register_event” reworded the description of “event_id” cosmetic
- “sign_up_to_volunteer” reworded the description of “shift_id” cosmetic
- 17 Sept 26 +1
- A breaking change shipped without a version bump: still 2.4.3 ▼ security
- Tool “get_daily_menu” was removed ▼ security
- Tool “get_daily_orders” was removed ▼ security
- Tool “get_monthly_orders” was removed ▼ security
- Tool “get_wallet_status” was removed ▼ security
- Tool “set_menu_item_price” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “list_menu_items” rewrote its description, which is the text the model reads security
- Tool “cancel_event” rewrote its description, which is the text the model reads security
- Tool “cancel_order” rewrote its description, which is the text the model reads security
- Tool “create_draft_order” rewrote its description, which is the text the model reads security
- Tool “create_event” rewrote its description, which is the text the model reads security
- Tool “create_menu_item” rewrote its description, which is the text the model reads security
- Tool “create_restaurant” rewrote its description, which is the text the model reads security
- Tool “delete_menu_item” rewrote its description, which is the text the model reads security
- Tool “finalize_order” rewrote its description, which is the text the model reads security
- Tool “get_orders” rewrote its description, which is the text the model reads security
- Tool “get_upcoming_events” rewrote its description, which is the text the model reads security
- Tool “get_user_info” rewrote its description, which is the text the model reads security
- Tool “get_wallet_balance” rewrote its description, which is the text the model reads security
- Tool “list_school_restaurants” rewrote its description, which is the text the model reads security
- Tool “order_lunch” rewrote its description, which is the text the model reads security
- Tool “register_event” rewrote its description, which is the text the model reads security
- Tool “set_daily_menu” rewrote its description, which is the text the model reads security
- Tool “sign_up_to_volunteer” rewrote its description, which is the text the model reads security
- Tool “update_event” rewrote its description, which is the text the model reads security
- Tool “update_menu_item” rewrote its description, which is the text the model reads security
- Schema quality: pass → fail ▼ functional
- Tool coverage: 92% → 100% ▲ functional
- New tool “get_menu” functional
- “get_orders” added an optional parameter “menu_date” cosmetic
- “get_orders” added an optional parameter “month” cosmetic
- “cancel_event” reworded the description of “event_id” cosmetic
- “create_draft_order” reworded the description of “items” cosmetic
- “create_draft_order” reworded the description of “menu_date” cosmetic
- “create_draft_order” reworded the description of “school_slug” cosmetic
- “create_draft_order” reworded the description of “student_id” cosmetic
- “create_menu_item” reworded the description of “restaurant_id” cosmetic
- “create_restaurant” reworded the description of “school_slug” cosmetic
- “delete_menu_item” reworded the description of “menu_item_id” cosmetic
- “delete_menu_item” reworded the description of “restaurant_id” cosmetic
- “get_orders” reworded the description of “student_id” cosmetic
- “list_menu_items” reworded the description of “restaurant_id” cosmetic
- “order_lunch” reworded the description of “menu_date” cosmetic
- “order_lunch” reworded the description of “menu_item_id” cosmetic
- “set_daily_menu” reworded the description of “menu_item_id” cosmetic
- “set_daily_menu” reworded the description of “restaurant_id” cosmetic
- “update_event” reworded the description of “event_id” cosmetic
- “update_event” reworded the description of “status” cosmetic
- “update_menu_item” reworded the description of “is_active” cosmetic
- “update_menu_item” reworded the description of “is_available” cosmetic
- “update_menu_item” reworded the description of “menu_item_id” cosmetic
- “update_menu_item” reworded the description of “restaurant_id” cosmetic
- Tool “cancel_event” changed its title: Cancel Event (Admin) cosmetic
- Tool “cancel_order” changed its title: Cancel Order cosmetic
- Tool “create_draft_order” changed its title: Create Draft Order cosmetic
- Tool “create_event” changed its title: Create Event (Admin) cosmetic
- Tool “create_menu_item” changed its title: Create Menu Item (Admin) cosmetic
- Tool “create_restaurant” changed its title: Create Restaurant (Admin) cosmetic
- Tool “delete_menu_item” changed its title: Delete Menu Item (Admin) cosmetic
- Tool “finalize_order” changed its title: Finalize Order cosmetic
- Tool “get_orders” changed its title: Get Orders cosmetic
- Tool “get_upcoming_events” changed its title: Get Upcoming Events cosmetic
- Tool “get_user_info” changed its title: Get User Info cosmetic
- Tool “get_wallet_balance” changed its title: Get Wallet Balance cosmetic
- Tool “list_menu_items” changed its title: List Menu Items (Admin) cosmetic
- Tool “list_school_restaurants” changed its title: List School Restaurants (Admin) cosmetic
- Tool “order_lunch” changed its title: Order Lunch cosmetic
- Tool “register_event” changed its title: Register for Event cosmetic
- Tool “set_daily_menu” changed its title: Set Daily Menu (Admin) cosmetic
- Tool “sign_up_to_volunteer” changed its title: Sign Up to Volunteer cosmetic
- Tool “update_event” changed its title: Update Event (Admin) cosmetic
- Tool “update_menu_item” changed its title: Update Menu Item (Admin) cosmetic
- 16 Sept 26 +2
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- Tool “create_menu_item” rewrote its description, which is the text the model reads security
- Tool “create_restaurant” rewrote its description, which is the text the model reads security
- Tool “get_monthly_orders” rewrote its description, which is the text the model reads security
- Tool “get_orders” rewrote its description, which is the text the model reads security
- Tool “get_upcoming_events” rewrote its description, which is the text the model reads security
- Tool “list_menu_items” rewrote its description, which is the text the model reads security
- Tool “set_daily_menu” rewrote its description, which is the text the model reads security
- Tool “update_event” rewrote its description, which is the text the model reads security
- Schema quality: 70 → 91 ▼ functional
- Tool coverage: 38% → 92% ▲ functional
- Schema quality: good → excellent functional
- “create_event” reworded the description of “description” cosmetic
- “create_event” reworded the description of “ends_at” cosmetic
- “create_event” reworded the description of “event_date” cosmetic
- “create_event” reworded the description of “location” cosmetic
- “create_event” reworded the description of “max_capacity” cosmetic
- “create_event” reworded the description of “name” cosmetic
- “create_event” reworded the description of “starts_at” cosmetic
- “create_menu_item” reworded the description of “calories” cosmetic
- “create_menu_item” reworded the description of “cost_cents” cosmetic
- “create_menu_item” reworded the description of “description” cosmetic
- “create_menu_item” reworded the description of “ingredients” cosmetic
- “create_menu_item” reworded the description of “name” cosmetic
- “create_menu_item” reworded the description of “price_cents” cosmetic
- “create_menu_item” reworded the description of “restaurant_id” cosmetic
- “create_restaurant” reworded the description of “description” cosmetic
- “create_restaurant” reworded the description of “name” cosmetic
- “create_restaurant” reworded the description of “school_slug” cosmetic
- “create_restaurant” reworded the description of “tax_percent” cosmetic
- “list_menu_items” reworded the description of “restaurant_id” cosmetic
- “set_daily_menu” reworded the description of “available_qty” cosmetic
- “set_daily_menu” reworded the description of “menu_date” cosmetic
- “set_daily_menu” reworded the description of “menu_item_id” cosmetic
- “set_daily_menu” reworded the description of “restaurant_id” cosmetic
- “update_event” reworded the description of “description” cosmetic
- “update_event” reworded the description of “ends_at” cosmetic
- 15 Sept 26 +1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 13 Sept 26 +1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 12 Sept 26 −1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
- 10 Sept 26 +1
We did not load change detail this far back for this component, so this day may have recorded more than is shown.
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 20 Sept 2026 · Probed https://mcp.paxaver.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=paxaver.com | CN=WE1,O=Google Trust Services,C=US | 12 Aug 2026 | 10 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | adb0984c5411994e139d32625b323139 |
| SANs: paxaver.com, mcp.paxaver.com, *.mcp.paxaver.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 secure
Validation of mcp.paxaver.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| paxaver.com. | present | 2371 | 13 | Verified |
| mcp.paxaver.com. | Verified address RRset verified with the apex keys |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.paxaver.com/.well-known/oauth-protected-resource"
Bearer resource_metadata="https://mcp.paxaver.com/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
Protected resource metadata
| Document | https://mcp.paxaver.com/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.paxaver.com |
| Authorisation server | https://paxaver.ca/auth |
| https://paxaver.com/auth | |
| https://paxaver.mx/auth |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.paxaver.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.paxaver.com/mcp | HTTPS enforced | 301 | https://mcp.paxaver.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 →
archive_restaurant_menu_item Archive Restaurant Menu Item (Admin) ~138
ADMIN: Archives (soft-deletes) a menu item so it can no longer be ordered - the item is removed from ordering but stays on historical orders. To retire it from the restaurant menu without archiving, use update_restaurant_menu_item with is_active=false. Requires pac_cordinator or lunch_cordinator role. DESTRUCTIVE operation - confirm with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_restaurant_menu_items.
| Name | Type | Req | Description |
|---|---|---|---|
| menu_item_id | string | yes | Menu item ID - from list_restaurant_menu_items |
| restaurant_id | string | yes | Restaurant ID - from list_school_restaurants |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | – | Whether the item was soft-deleted |
| id | string | – | Menu item ID |
No examples provided.
cancel_my_event_registration Cancel My Event Registration ~101
Cancels one of the authenticated user's own event tickets (ticket_id from list_my_event_registrations). Releases the reserved seats; for paid tickets the full amount is refunded to the user's wallet at that school. Only the ticket owner or a coordinator can cancel. DESTRUCTIVE - confirm with the user before cancelling.
| Name | Type | Req | Description |
|---|---|---|---|
| ticket_id | string | yes | Ticket ID from list_my_event_registrations - must belong to the caller and still be cancellable |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Cancelled ticket ID |
| status | string | – | Ticket status (cancelled) |
No examples provided.
cancel_my_lunch_order Cancel My Lunch Order ~88
Cancels a finalized order and refunds the charge to the wallet. Only works before order labels have been sent; after that the request is rejected and the order stands. DESTRUCTIVE - confirm with the user before cancelling.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | ID of a finalized order - from list_my_lunch_orders; the order must still be finalized and not yet have labels sent |
| Name | Type | Req | Description |
|---|---|---|---|
| balanceCents | number|null | – | Wallet balance after the refund, in cents |
| id | string | – | Order ID |
| refundCents | integer | – | Amount refunded to the wallet, in cents |
| status | string | – | Order status (cancelled) |
No examples provided.
cancel_my_volunteer_signup Cancel My Volunteer Signup ~94
Cancels one of the authenticated user's own volunteer signups (signup_id from list_my_volunteer_signups) and frees the shift slot for others. No payment is involved. Only the volunteer themselves or an admin can cancel. DESTRUCTIVE - confirm with the user before cancelling.
| Name | Type | Req | Description |
|---|---|---|---|
| signup_id | string | yes | Signup ID from list_my_volunteer_signups - must belong to the caller and still be active |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Cancelled signup ID |
| status | string | – | Signup status (cancelled) |
No examples provided.
cancel_school_event Cancel School Event (Admin) ~89
ADMIN: Cancels a school event outright; cancelled events cannot be reactivated. For schedule, capacity, or price changes use update_school_event instead. Requires pac_cordinator or event_cordinator role. DESTRUCTIVE - confirm with the user. Get event_id from list_school_events.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string | yes | Event ID - from list_school_events; cancelling is permanent and cannot be undone |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Event ID |
| status | string | – | Event status (cancelled) |
No examples provided.
create_lunch_order_draft Create Lunch Order Draft ~218
Creates an unpaid draft lunch order with one or more items - nothing is charged until pay_lunch_order_draft commits it. Use for multi-item orders or when the user should review the total first; each items entry pairs a menu_item_id with a quantity. The draft total is the sum of item prices times quantities plus nothing else until pay_lunch_order_draft. To change or abandon the draft, use update_lunch_order_draft or discard_lunch_order_draft. FINANCIAL - confirm student, items, and date before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | Line items to order; get IDs and prices from get_lunch_menu |
| menu_date | string | yes | Date the lunch is served, YYYY-MM-DD |
| school_slug | string | – | School slug (from get_my_context); defaults to the active school |
| student_id | string | – | Student ID (must be your own student; from get_my_context); required when the user has more than one student, defaults to their only student |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Draft order ID - pass to pay_lunch_order_draft |
| itemTotalCents | integer | – | Item total in cents - charged on finalize |
| items | array | – | Draft line items |
| menuDate | string | – | Date the lunch is served, YYYY-MM-DD |
| schoolSlug | string | – | School the order was placed at |
| status | string | – | Order status (draft) |
| studentId | string | – | Student the order is for |
No examples provided.
create_restaurant_menu_item Create Restaurant Menu Item (Admin) ~187
ADMIN: Creates a new menu item on a restaurant. Only restaurant_id and name are required - set price_cents before the item can be meaningfully ordered. New items start active and available; use update_restaurant_menu_item to change them later. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm with the user. Get restaurant_id from list_school_restaurants.
| Name | Type | Req | Description |
|---|---|---|---|
| calories | integer | – | Calorie count |
| cost_cents | integer | – | Kitchen cost in cents (internal margin tracking) |
| description | string | – | Optional item description |
| ingredients | array | – | Ingredient list |
| name | string | yes | Item display name shown to parents |
| price_cents | integer | – | Sale price in cents (e.g. 550 = $5.50) |
| restaurant_id | string | yes | Restaurant ID - from list_school_restaurants |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Menu item ID |
| isActive | boolean | – | Whether the item is on the restaurant menu |
| name | string | – | Item name |
| priceCents | integer | – | Sale price in cents |
No examples provided.
create_school_event Create School Event (Admin) ~202
ADMIN: Creates a school event, optionally ticketed, at the active school. To change an existing event use update_school_event; to register a parent for an event use register_for_event. Requires pac_cordinator or event_cordinator role. WRITE - only create on explicit user request.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional event description |
| ends_at | string | – | End time (e.g. 20:00) |
| event_date | string | yes | Event date, YYYY-MM-DD |
| location | string | – | Event location (e.g. Gymnasium) |
| max_capacity | integer | – | Maximum attendees/tickets; omit for unlimited |
| name | string | yes | Event name shown to parents |
| school_slug | string | – | School slug (defaults to active school) |
| starts_at | string | – | Start time (e.g. 18:30) |
| ticket_price_cents | integer | – | Ticket price in cents (0 = free) |
| Name | Type | Req | Description |
|---|---|---|---|
| eventDate | string | – | Event date, YYYY-MM-DD |
| id | string | – | Event ID |
| name | string | – | Event name |
| status | string | – | Event status (e.g. active) |
No examples provided.
create_school_restaurant Create School Restaurant (Admin) ~125
ADMIN: Adds a restaurant to the active school so it can offer menu items via create_restaurant_menu_item. To change an existing restaurant there is no update tool - recreate or manage it in the Paxaver admin. Requires pac_cordinator role. WRITE - confirm with the user.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional restaurant description |
| name | string | yes | Restaurant display name |
| school_slug | string | – | School slug - defaults to the active school |
| tax_percent | number | – | Sales tax percentage applied to orders (e.g. 5 for 5%) |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Restaurant ID |
| isActive | boolean | – | Whether the restaurant is active |
| name | string | – | Restaurant name |
No examples provided.
discard_lunch_order_draft Discard Lunch Order Draft ~111
Permanently discards an unpaid draft order - the caller must own it and it must still be in draft status (order_id from create_lunch_order_draft). Nothing was ever charged, so there is no refund; the draft is simply deleted. For a finalized order use cancel_my_lunch_order instead. DESTRUCTIVE - confirm with the user before discarding.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | Draft order ID from create_lunch_order_draft - must still be in draft status |
| Name | Type | Req | Description |
|---|---|---|---|
| orderId | string | – | Discarded draft order ID |
| status | string | – | Order status (discarded) |
No examples provided.
get_lunch_menu Get Lunch Menu ~141
Returns the orderable lunch menu for the user's active school - item names, prices, dietary tags, and remaining quantity. Pass date for a single day or month for a per-day listing across the whole month (today if neither is given); if both are passed, date wins. The menu_item_id values returned are required by create_lunch_order_draft. For orders already placed, use list_my_lunch_orders.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Single day to show, YYYY-MM-DD; omit when using month |
| month | string | – | Calendar month to show, YYYY-MM; omit when using date. Today is used when neither is given |
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Date this menu applies to, YYYY-MM-DD |
| menuItems | array | – | Items orderable on that date |
No examples provided.
get_my_context Get My Context ~109
Read-only lookup with no side effects - safe to call repeatedly. Requires authentication: returns only the caller's own context (never another user's data): first name, active school, the students they are a guardian for, and their role codes at that school. This is the context-discovery call - most other tools need a student_id or school_slug from here, and admin-role checks come from roles. Returns live account state, so call again if the user may have switched schools or had roles changed.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| firstName | string|null | – | User first name |
| roles | array | – | Role codes the user holds at the active school |
| schoolName | string|null | – | Active school display name |
| schoolSlug | string|null | – | Active school slug |
| students | array | – | Students the user is guardian for (id, firstName, schoolSlug) |
No examples provided.
get_my_wallet_balance Get My Wallet Balance ~112
Read-only lookup - never moves funds or has side effects. Requires authentication: returns only the caller's spendable wallet balance at their active school (wallets are scoped per school, so a balance at one school does not apply elsewhere), in cents and formatted. Live value reflecting orders and refunds up to the current moment - recheck before assuming funds are still available. Call before pay_lunch_order_draft or register_for_event to confirm the user can cover the charge; not needed for read-only lookups.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| balanceCents | number|null | – | Spendable balance in cents |
| balanceFormatted | string|null | – | Balance formatted with the currency symbol |
| currency | string|null | – | ISO currency code (CAD, USD, or MXN) |
No examples provided.
list_my_event_registrations List My Event Registrations ~84
Read-only, no side effects. Returns the authenticated user's own event tickets at their active school - ticket id, event name/date/location, quantity, total paid, and status (paid or checked_in). Cancelled tickets are excluded. The id values returned are required by cancel_my_event_registration. Pair with list_school_events for events the user has not registered for.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| tickets | array | – | Caller's event tickets at the active school |
No examples provided.
list_my_lunch_orders List My Lunch Orders ~199
Returns lunch orders already placed - items, menu date, status, and total - for the authenticated user's students, newest first (up to ~100 most recent). Filters combine with AND: student_id narrows to one student; menu_date and month narrow the date range, and if both are given menu_date wins. With no filters returns recent orders across all of the user's students. Admins (pac_cordinator, lunch_cordinator) see school-wide orders; parents only their own students. For what can be ordered (menu and prices), use get_lunch_menu.
| Name | Type | Req | Description |
|---|---|---|---|
| menu_date | string | – | Single day to query, YYYY-MM-DD; omit when using month |
| month | string | – | Calendar month to query, YYYY-MM; omit when using menu_date |
| student_id | string | – | Filter to a specific student (must be your own student, from get_my_context; admins may filter any student in the school) |
| Name | Type | Req | Description |
|---|---|---|---|
| orders | array | – | Orders matching the filters |
No examples provided.
list_my_volunteer_signups List My Volunteer Signups ~65
Read-only, no side effects. Returns the authenticated user's active volunteer signups at their school - signup id, shift title/date/times, and the parent event. Cancelled signups are excluded. The id values returned are required by cancel_my_volunteer_signup.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| signups | array | – | Caller's active volunteer signups |
No examples provided.
list_restaurant_menu_items List Restaurant Menu Items (Admin) ~111
ADMIN: Lists the full menu-item catalog for a restaurant, including inactive and unavailable items - this is the catalog, not what parents can order on a date (use get_lunch_menu for that). Provides menu_item_id values for update_restaurant_menu_item, archive_restaurant_menu_item, and schedule_lunch_menu_item. Requires pac_cordinator or lunch_cordinator role. Get restaurant_id from list_school_restaurants.
| Name | Type | Req | Description |
|---|---|---|---|
| restaurant_id | string | yes | Restaurant ID - from list_school_restaurants |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | Full catalog items, including inactive and unavailable |
No examples provided.
list_school_events List School Events ~146
Returns upcoming events for the user's active school: date, times, location, volunteer shifts, and whether registration is closed. The event IDs returned feed register_for_event; shift IDs feed sign_up_for_volunteer_shift. To review or undo your own registrations and signups, use list_my_event_registrations / cancel_my_event_registration and list_my_volunteer_signups / cancel_my_volunteer_signup. Optionally filter by date range.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | – | Last day of the range, YYYY-MM-DD (inclusive); omit for all upcoming events |
| start_date | string | – | First day of the range, YYYY-MM-DD (inclusive); omit for all upcoming events |
| Name | Type | Req | Description |
|---|---|---|---|
| events | array | – | Upcoming events matching the date range |
No examples provided.
list_school_restaurants List School Restaurants (Admin) ~102
ADMIN: Lists the active restaurants attached to a school (defaults to the active school). Inactive restaurants are not returned. The restaurant_id values returned are required by list_restaurant_menu_items, create_restaurant_menu_item, update_restaurant_menu_item, archive_restaurant_menu_item, and schedule_lunch_menu_item. Requires pac_cordinator, pac_member, or lunch_cordinator role.
| Name | Type | Req | Description |
|---|---|---|---|
| school_slug | string | – | School slug (defaults to active school) |
| Name | Type | Req | Description |
|---|---|---|---|
| restaurants | array | – | Active restaurants attached to the school (inactive ones are excluded) |
No examples provided.
pay_lunch_order_draft Pay Lunch Order Draft ~119
Commits a draft order from create_lunch_order_draft and charges the wallet for the item total plus optional tip_cents (donated to the school's PAC). Not for new orders - use create_lunch_order_draft first. FINANCIAL - confirm the total before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | Draft order ID from create_lunch_order_draft - must still be in draft status; already-finalized orders are rejected |
| tip_cents | integer | – | Tip in cents (donated to school PAC) |
| Name | Type | Req | Description |
|---|---|---|---|
| balanceCents | number|null | – | Wallet balance after the charge, in cents |
| id | string | – | Order ID |
| itemTotalCents | integer | – | Item total in cents |
| status | string | – | Order status (finalized) |
| tipCents | integer | – | PAC donation added, in cents |
| totalCents | integer | – | Total charged to the wallet, in cents |
No examples provided.
register_for_event Register for Event ~143
Registers the authenticated user for a school event and issues tickets to the caller (quantity is the number of tickets bought for the caller, minimum 1 - there is no per-student split). For paid events quantity times the ticket price is charged to the user's wallet - the call fails on insufficient balance or when the event is sold out or registration is closed. To volunteer at an event rather than attend, use sign_up_for_volunteer_shift. FINANCIAL for paid events - confirm before registering.
| Name | Type | Req | Description |
|---|---|---|---|
| event_id | string | yes | Event ID from list_school_events - registration must still be open (check the closed flag) |
| quantity | integer | – | Number of tickets |
| Name | Type | Req | Description |
|---|---|---|---|
| eventId | string | – | Event the user registered for |
| id | string | – | Registration ID |
| quantity | integer | – | Tickets issued |
| status | string | – | Registration status |
No examples provided.
schedule_lunch_menu_item Schedule Lunch Menu Item (Admin) ~162
ADMIN: Puts a restaurant menu item on the orderable menu for a given date, optionally capping portions. This only schedules the item - to retire it entirely use update_restaurant_menu_item (is_active) or archive_restaurant_menu_item. Requires pac_cordinator or lunch_cordinator role. WRITE - confirm with the user. Get IDs from list_school_restaurants and list_restaurant_menu_items.
| Name | Type | Req | Description |
|---|---|---|---|
| available_qty | integer | – | Maximum portions for the day; omit for unlimited |
| menu_date | string | yes | Date the item is orderable, YYYY-MM-DD |
| menu_item_id | string | yes | Menu item ID - from list_restaurant_menu_items |
| restaurant_id | string | yes | Restaurant ID - from list_school_restaurants |
| Name | Type | Req | Description |
|---|---|---|---|
| availableQty | integer|null | – | Portion cap for the day; null means unlimited |
| id | string | – | Daily-menu entry ID |
| menuDate | string | – | Date the item is orderable, YYYY-MM-DD |
| menuItemId | string | – | Menu item scheduled |
No examples provided.
sign_up_for_volunteer_shift Sign Up for Volunteer Shift ~111
Signs the authenticated user up for a specific volunteer shift - no payment involved. shift_id identifies one shift within an event, not the event itself: get it from the event's volunteer shifts in list_school_events. The call fails when the shift is full or cancelled. To attend an event as a guest instead, use register_for_event. WRITE - confirm with the user before signing up.
| Name | Type | Req | Description |
|---|---|---|---|
| shift_id | string | yes | Volunteer shift ID - from the event's volunteer shifts (list_school_events) |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Signup ID |
| shiftId | string | – | Volunteer shift signed up for |
| status | string | – | Signup status |
No examples provided.
update_lunch_order_draft Update Lunch Order Draft ~177
Replaces the items and/or menu_date of an unpaid draft order before it is finalized - the caller must own the draft and it must still be in draft status (order_id from create_lunch_order_draft). Pass the complete items list: it replaces the draft's items wholesale and the total is recomputed from price times quantity. Only draft orders can be updated; once finalized, use cancel_my_lunch_order. WRITE - confirm the new contents with the user.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | – | Replacement line items (menu_item_id from get_lunch_menu + quantity); replaces all existing items when provided |
| menu_date | string | – | New date the lunch is served, YYYY-MM-DD |
| order_id | string | yes | Draft order ID from create_lunch_order_draft - must still be in draft status |
| Name | Type | Req | Description |
|---|---|---|---|
| orderId | string | – | Updated draft order ID |
| status | string | – | Order status (draft) |
No examples provided.
update_restaurant_menu_item Update Restaurant Menu Item (Admin) ~280
ADMIN: Partially updates an existing menu item - only the provided fields change; omitted fields keep their current values. Use for renames, description edits, price changes (price_cents - FINANCIAL, confirm the new price), nutrition updates, or retiring an item (is_active=false). Day-level orderability is controlled by schedule_lunch_menu_item, not this tool. Use archive_restaurant_menu_item to remove the item permanently. Requires pac_cordinator or lunch_cordinator role. WRITE operation - confirm changes with the user. Get restaurant_id from list_school_restaurants and menu_item_id from list_restaurant_menu_items.
| Name | Type | Req | Description |
|---|---|---|---|
| calories | integer | – | Calorie count |
| cost_cents | integer | – | Kitchen cost in cents (internal margin tracking) |
| description | string | – | New item description shown to parents |
| ingredients | array | – | Ingredient list |
| is_active | boolean | – | Whether the item stays on the restaurant menu - set false to retire it |
| menu_item_id | string | yes | Menu item ID - from list_restaurant_menu_items |
| name | string | – | New display name for the item |
| price_cents | integer | – | Sale price in cents (e.g. 550 = $5.50) |
| restaurant_id | string | yes | Restaurant ID - from list_school_restaurants |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | Menu item ID |
| isActive | boolean | – | Whether the item is on the restaurant menu |
| isAvailable | boolean | – | Whether the item can currently be ordered |
| name | string | – | Item name |
| priceCents | integer | – | Sale price in cents |
No examples provided.
update_school_event Update School Event (Admin) ~241
ADMIN: Partially updates an existing school event - only the provided fields change; omitted fields keep their current values. Use for reschedules, capacity or price changes, and status transitions (cancelled/completed). Prefer cancel_school_event to cancel outright. Requires pac_cordinator or event_cordinator role. WRITE operation - confirm changes with the user. Get event_id from list_school_events.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | New event description shown to parents |
| ends_at | string | – | End time (e.g. 20:00) |
| event_date | string | – | Event date, YYYY-MM-DD |
| event_id | string | yes | Event ID - from list_school_events |
| location | string | – | Event location (e.g. Gymnasium) |
| max_capacity | integer | – | Maximum number of attendees/tickets |
| name | string | – | New event name |
| starts_at | string | – | Start time (e.g. 18:30) |
| status | string | – | Event status - cancelled stops sales, completed closes the event |
| ticket_price_cents | integer | – | Ticket price in cents; 0 for free events |
| Name | Type | Req | Description |
|---|---|---|---|
| eventDate | string | – | Event date, YYYY-MM-DD |
| id | string | – | Event ID |
| name | string | – | Event name |
| status | string | – | Event status after the update |
No examples provided.
What is the io.github.Smartoire/paxaver-mcp server?
io.github.Smartoire/paxaver-mcp is listed in the public MCP registry as io.github.Smartoire/paxaver-mcp. MCP adapter for the Paxaver school community platform. Streamable HTTP, OAuth 2.1, capability auth. This page covers its hosted endpoint (https://mcp.paxaver.com/mcp).
Is the io.github.Smartoire/paxaver-mcp server safe to use?
io.github.Smartoire/paxaver-mcp scores 95 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 io.github.Smartoire/paxaver-mcp server expose?
io.github.Smartoire/paxaver-mcp exposes 26 tools: get_my_context, get_my_wallet_balance, list_my_lunch_orders, get_lunch_menu, create_lunch_order_draft, and 21 more. Their descriptions and schemas cost roughly 3,655 tokens of context every time the server is loaded.
Does the io.github.Smartoire/paxaver-mcp server require authentication?
Yes. io.github.Smartoire/paxaver-mcp asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the io.github.Smartoire/paxaver-mcp server still maintained?
io.github.Smartoire/paxaver-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.