Public leaderboard

Public assessment

VeriTeknik/pluggedin-mcp-proxy (@pluggedin/pluggedin-mcp-proxy)

pluggedin-pluggedin-mcp-proxy · v2.3.0 · scanned

What changed in the harness

Selection accuracy 96→98, token cost up 2%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

22.4 / 30

22.4 out of 30
03Economics

16.0 / 20

16.0 out of 20
04Discoverability

13.9 / 20

13.9 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

16 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
pluggedin_setup
no_return_description
Get started with Plugged.in MCP: returns setup instructions and API key configuration text for the requested topic (no API key required).
pluggedin_discover_tools
no_return_description
Triggers discovery of tools, resources, and templates for configured MCP servers in the Pluggedin App. Returns a status/result summary of the discovery run (e.g., number of servers/tools discovered), optionally scoped to a single server via server_uuid.
pluggedin_create_document
no_return_description
Create and save an AI-generated document to the user's library with full metadata tracking (requires API key). Returns the created document's ID and stored metadata.
pluggedin_list_documents
no_return_description
List documents from the user's library with optional filtering, sorting, and pagination (requires API key). Returns an array of matching document summaries plus pagination info.
pluggedin_get_document
no_return_description
Retrieve a specific document by ID (use after pluggedin_search_documents). Returns the document's metadata, and its full content and/or version history when includeContent or includeVersions is set to true.
pluggedin_update_document
no_return_description
Update or append to an existing AI-generated document with version tracking (requires API key). Returns the updated document's metadata and new version info.
pluggedin_mark_notification_done
name_restates_behavior no_return_description
Mark a notification as completed/read so it no longer appears in unread notification lists. Returns the updated notification's status.
pluggedin_delete_notification
no_return_description
Permanently delete a notification from the Plugged.in system by ID. Returns a confirmation of deletion.
pluggedin_clipboard_set
no_return_description
Set a clipboard entry by name (semantic key, upserted) or index (array-like, fails if index already exists), up to 2MB per entry. Returns the stored entry's key/index and metadata.
pluggedin_clipboard_get
no_return_description
Get clipboard entries: a single entry when name or idx is specified, or a paginated list of all entries when both are omitted. Returns the matching entry value(s) with metadata.
pluggedin_clipboard_delete
no_return_description
Delete clipboard entries by name, by index, or all entries at once when clearAll is true. Returns a confirmation of what was deleted.
pluggedin_clipboard_list
no_return_description
List all clipboard entries with metadata, filterable by content type and paginated (image values truncated to 1000 chars for preview). Returns an array of entry summaries.
pluggedin_clipboard_push
no_return_description
Push a value onto the indexed clipboard with an auto-incrementing index, useful for ordered pipelines or stack-like operations. Returns the newly assigned index and stored entry metadata.
pluggedin_memory_observe
no_return_description
Record an observation during an active memory session; observations are later classified by the Analytics Agent into memory ring types (procedures, practice, longterm, shocks). Returns the stored observation's ID.
pluggedin_memory_session_end
name_restates_behavior no_return_description
Close an active memory session identified by memory_session_id, triggering AI-compressed Z-report generation for that session. Returns the session's final status and a reference to the generated Z-report.
pluggedin_memory_details
no_return_description
Get full details for specific memories by UUID (progressive disclosure Layer 3), used after pluggedin_memory_search narrows down candidates. Returns the complete content and metadata for each requested memory.

Selection evidence

Confusable tool pairs.

8 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
pluggedin_clipboard_get pluggedin_clipboard_list high pluggedin_clipboard_get, when called with neither name nor idx, explicitly lists all entries with pagination — functionally overlapping with clipboard_list. A task like 'show me everything in the clipboard' could plausibly invoke either.
pluggedin_clipboard_delete pluggedin_clipboard_pop medium A task like 'remove the most recent clipboard entry' is ambiguous between clipboard_pop (LIFO removal of highest-indexed entry) and clipboard_delete targeting a specific idx/name, since both result in entry removal.
pluggedin_clipboard_get pluggedin_clipboard_pop medium A task like 'get the last item off the clipboard' could be read as either a non-destructive read (clipboard_get by idx) or a destructive read-and-remove (clipboard_pop), since the phrase 'get' doesn't clarify whether removal is intended.
pluggedin_create_document pluggedin_update_document medium A task like 'save this AI-generated report to the library' is ambiguous when the agent doesn't know if a document already exists — create_document makes a new one while update_document appends/replaces an existing one, and both handle AI-generated content with model metadata.
pluggedin_list_documents pluggedin_search_documents medium list_documents supports a filters.searchQuery text field that overlaps with search_documents' primary query purpose, so a task like 'find documents about authentication' could plausibly map to either tool.
pluggedin_search_documents pluggedin_memory_search high Both tools perform semantic/text search with a 'query' parameter but over different domains (document library vs. memory rings). A generic task like 'search for information about X' doesn't specify which corpus, making tool choice genuinely ambiguous.
pluggedin_mark_notification_done pluggedin_delete_notification medium A task like 'dismiss' or 'clear this notification' is ambiguous between marking it done (soft, keeps record) and deleting it (hard removal), since both take a notificationId and achieve a similar user-facing 'get rid of it' outcome.
pluggedin_memory_search pluggedin_memory_details low Both retrieve memory content, but memory_search is for discovery via natural-language query while memory_details requires known UUIDs; confusion is unlikely unless the agent already has UUIDs and a vague task like 'tell me about this memory' doesn't specify which layer to use.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard