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 100→100, token cost up 4%, 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

23.0 / 30

23.0 out of 30
03Economics

16.2 / 20

16.2 out of 20
04Discoverability

12.4 / 20

12.4 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 by selecting a topic (getting_started, api_key, configuration, or troubleshooting) and returns step-by-step setup instructions plus API key configuration guidance for that topic. No API key is required to call this tool.
pluggedin_discover_tools
no_return_description
Triggers discovery of tools, resources, and templates for the configured MCP servers in the Pluggedin App. Set server_uuid to discover only that server, or force_refresh to bypass the cache. Returns the discovery status and the discovered tools/resources/templates for each server.
pluggedin_create_document
no_return_description
Creates and saves an AI-generated document with attribution metadata to the user's library in Plugged.in (requires API key). On success, returns the created document identifier, which can be used with pluggedin_get_document or pluggedin_update_document.
pluggedin_list_documents
no_return_description
Lists documents from the user's library (requires API key), applying optional filters such as source, category, tags, model, and date range, and returning a paginated set of document metadata controlled by limit and offset.
pluggedin_get_document
no_return_description
Retrieves a document by its UUID and returns its metadata along with the full text content when includeContent is true; includeVersions adds prior versions. Use after pluggedin_search_documents to fetch the complete content of a found document.
pluggedin_update_document
no_return_description
Updates an existing AI-generated document by replacing, appending, or prepending content, recording the change with optional attribution metadata and version tracking (requires API key). Returns the updated document and details of the new version.
pluggedin_mark_notification_done
name_restates_behavior no_return_description
Marks a notification as done (read) using the notificationId returned by pluggedin_list_notifications, so it no longer shows up in unread results. Returns a confirmation that the notification was marked done.
pluggedin_delete_notification
no_return_description
Permanently deletes a notification using the notificationId returned by pluggedin_list_notifications. Returns a confirmation once the notification has been removed.
pluggedin_clipboard_set
no_return_description
Stores a value in the clipboard under a semantic name (upserted) or numeric idx (fails if the index already exists), with configurable MIME type, encoding, visibility, and TTL (max 1 year, default 24 hours), max 2 MB per entry. Returns the stored entry and its metadata.
pluggedin_clipboard_get
no_return_description
Reads a single clipboard entry by name or idx, or with neither returns all entries as a paginated list using limit and offset, optionally filtered by contentType. Returns the entry values and metadata.
pluggedin_clipboard_delete
no_return_description
Deletes clipboard entries by name or idx, or clears all entries with clearAll. Returns the number of entries that were deleted.
pluggedin_clipboard_list
no_return_description
Lists all clipboard entries with metadata, optionally filtered by contentType and paginated with limit and offset; image values are truncated to the first 1000 characters for preview. Returns the entries and their metadata.
pluggedin_clipboard_push
no_return_description
Appends a value to the indexed clipboard at the next auto-incrementing index, for building ordered pipelines or stack-like operations. Returns the index at which the value was stored.
pluggedin_memory_session_end
name_restates_behavior no_return_description
Finalizes an active memory session and triggers its Z-report generation (an AI-compressed summary of the session). Pass the memory_session_id returned by pluggedin_memory_session_start. Returns the generated session summary/report.
pluggedin_memory_observe
no_return_description
Records an observation during an active memory session (identified by session_uuid); the Analytics Agent classifies it into memory ring types (procedures, practice, longterm, shocks) and uses outcome for success-gated promotion. Returns a confirmation and the classification result.
pluggedin_memory_details
no_return_description
Retrieves the full content and metadata for up to 20 selected memories by their UUIDs (progressive disclosure Layer 3). Use after pluggedin_memory_search to expand lightweight results. Returns the complete details for each requested memory.

Selection evidence

Confusable tool pairs.

11 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 get without name/idx lists all entries with pagination, functionally duplicating list; a task like 'show me all my clipboard entries' can be plausibly routed to either tool.
pluggedin_memory_search pluggedin_memory_details medium Both surface memory content; details requires memory_uuids that must come from search, so a task like 'give me the full details of my memories about X' may wrongly trigger details without UUIDs or search without full content.
pluggedin_search_documents pluggedin_memory_search medium Both are 'search' tools with near-identical naming on a domain-agnostic task like 'search for X', where nothing in the phrasing reveals whether the target is documents or memories.
pluggedin_list_documents pluggedin_search_documents medium list_documents accepts a searchQuery filter while search_documents returns matching metadata, so 'find/show documents about X' plausibly selects the wrong member.
pluggedin_create_document pluggedin_update_document medium Both write AI-generated documents requiring an API key; a task like 'save this content to my document' is ambiguous between creating a new document and appending to an existing one.
pluggedin_mark_notification_done pluggedin_delete_notification medium Both take a single notificationId and mutate that notification; a task like 'dismiss/clear this notification' could route to either marking done or deleting.
pluggedin_clipboard_get pluggedin_clipboard_pop medium get is read-only while pop removes the entry; a task like 'fetch the newest clipboard entry' may wrongly choose pop (destructive) because get requires a name/index the agent lacks.
pluggedin_list_documents pluggedin_get_document low list enumerates many documents while get requires a specific ID; a task like 'get/retrieve my documents' could pick get when list is intended.
pluggedin_search_documents pluggedin_get_document low search returns metadata and points to get for full content, so a task like 'retrieve the full document content' could pick search without an ID or get without searching first.
pluggedin_memory_session_start pluggedin_memory_observe low Both belong to an active memory session; 'start capturing observations for this chat' could trigger observe without first starting a session, or start without recording anything.
pluggedin_clipboard_delete pluggedin_clipboard_pop low Both remove clipboard entries; 'remove the newest entry' could route to delete (which needs an index/name the agent may not know) instead of pop, which removes the highest index.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard