UseMyContext.ai
by usemycontext · remote · no sign-in to list tools · v1.1.0 · published by GitHub user usemycontext
Personal context for AI, written by you and never scraped: your profile and files, any MCP client.
13 tools: 3 change things and 10 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads10Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http usemycontext https://mcp.usemycontext.ai/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnquery_table
The server marks "query_table" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "query_table" says "query": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
13 tools
Changes things 3Claude Code: ask
accountReport the user's current plan and usage: their tier (Free or Premium), how many projects and how much storage they are using against their limits, their subscription status if any…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Report the user's current plan and usage: their tier (Free or Premium), how many projects and how much storage they are using against their limits, their subscription status if any, and where they manage their plan. Use this when the user asks what plan they are on, how much storage or how many projects they have used, or whether they are near a limit. Metadata only - no files, facts, or profile content. This is READ-ONLY: you cannot change the plan or start a purchase; plan and billing changes are done by the user themselves at usemycontext.ai. Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: Your plan and usage
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
query_tableRun an EXACT, deterministic query over ONE tabular file (a CSV, or the first table of a spreadsheet/PDF/Word document).1 finding
Why it is in this group
- The name "query_table" says "query": a word for reading.
- The description's first verb is "run": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "query_table" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "query_table" says "query": a word for reading.
Description, as the server wrote it Run an EXACT, deterministic query over ONE tabular file (a CSV, or the first table of a spreadsheet/PDF/Word document). Use this instead of ask_docs whenever the question needs COUNTING, SUMMING, AVERAGING, MIN/MAX, FILTERING, or exact row lookups over structured data ('how many rows...', 'total amount by region', 'list orders where status is failed') - semantic search undercounts tables, while this executes over EVERY row and returns exact numbers. Use ask_docs for prose/meaning questions and get_file to read a whole document. The `query` argument is a JSON object: { select?: [column names to return as raw rows], where?: [{col, op, value}, ...] filters combined with AND - ops eq | neq | contains compare text case-insensitively, gt | gte | lt | lte compare numerically (rows whose cell is not a number are skipped and counted in skippedNonNumeric), groupBy?: 'column' gives one result row per distinct value, aggregates?: [{fn, col}] with fn count | sum | avg | min | max ('col' required except for count), limit?: max raw rows (default 50, max 200) }. Column names match the file's header row case-insensitively. Examples: {"where":[{"col":"status","op":"eq","value":"failed"}],"aggregates":[{"fn":"count"}]} counts failed rows; {"groupBy":"region","aggregates":[{"fn":"sum","col":"amount"}]} totals amount per region; {"select":["name","email"],"where":[{"col":"country","op":"eq","value":"FR"}]} returns the matching rows. If you name a column that does not exist, the error lists the file's real columns - retry with one of those. Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: Query a table exactly
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
suggest_updateSuggest an update to the user's saved context (something you learned about them).No findings
Why it is in this group
- The name "suggest_update" says "update": a word for a change.
Description, as the server wrote it Suggest an update to the user's saved context (something you learned about them). It is saved as a PENDING suggestion for the user to review and accept or ignore - it does NOT directly change their profile, and nothing is ever written to their files. When a conversation has surfaced something new and durable about the user and is wrapping up (the user says thanks, goodbye, or that's all, or the task completes), offer to save it here before the context is lost.
Annotations the server declares
- title: Suggest a profile update
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
Only reads 10Claude Code: allow
ask_docsSearch the user's connected documents by MEANING and return the most relevant passages (the actual text), each cited with its source file, for you to read and quote.No findings
Why it is in this group
- The description's first verb is "search": a word for reading.
Description, as the server wrote it Search the user's connected documents by MEANING and return the most relevant passages (the actual text), each cited with its source file, for you to read and quote. Use this to ANSWER a question from the user's documents - it returns grounded source content, not a file link, not a filename list, and not a pre-written answer (you do the reasoning). Before telling the user you do not know something about them or their work, search here first - the answer is often in their documents. Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: Ask your documents
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
fetchFetch one document's full extracted text by id (a file id from search / search_files / list_files), in the deep-research result shape.No findings
Why it is in this group
- The name "fetch" says "fetch": a word for reading.
Description, as the server wrote it Fetch one document's full extracted text by id (a file id from search / search_files / list_files), in the deep-research result shape. ALIAS: this is the SAME read as get_file (same data, same permissions, same audit, same size guard - large files are truncated) - use it when your client requires the id/title/text/url fetch contract (ChatGPT deep research); otherwise prefer get_file, which also serves download links and inline images. Read-only; audited.
Annotations the server declares
- title: Fetch a document (deep research)
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
get_fileGet the full text content of one file by id (large files are truncated; use ask_docs for targeted passages).No findings
Why it is in this group
- The name "get_file" says "get": a word for reading.
Description, as the server wrote it Get the full text content of one file by id (large files are truncated; use ask_docs for targeted passages). An image returns the picture itself (plus any text read from it at upload); other binary files return a short-lived download link instead. Audited.
Annotations the server declares
- title: Open a file
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
infoExplain what UseMyContext is, what this connection can and cannot do, and where the user goes to manage their account.No findings
Why it is in this group
- The description's first verb is "explain": a word for reading.
Description, as the server wrote it Explain what UseMyContext is, what this connection can and cannot do, and where the user goes to manage their account. Call this when the user asks what UseMyContext is, what you (the AI) can do with this connection, or where to find pricing, plans, billing, teams, or settings. IMPORTANT: this connection is READ-ONLY - you cannot create/rename/delete a profile, change privacy, manage the plan or billing, set up a team, invite teammates, or connect Google Drive/Notion/kDrive; those are done by the user at usemycontext.ai, so point them to the returned links rather than attempting them or telling them to search. Returns static public information only (no user data). Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: About UseMyContext
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_filesList the user's files (metadata only: id, name, size, content-type, modified, status).No findings
Why it is in this group
- The name "list_files" says "list": a word for reading.
Description, as the server wrote it List the user's files (metadata only: id, name, size, content-type, modified, status). Each file's status shows its readiness: 'available' means get_file can read it right now, and a just-processed file can take up to about a minute more to become searchable via ask_docs (queueEtaSeconds, when present, estimates the remaining wait). Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: List your files
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
list_profilesList the user's own profiles (their projects).No findings
Why it is in this group
- The name "list_profiles" says "list": a word for reading.
Description, as the server wrote it List the user's own profiles (their projects). Returns metadata only for each profile: its projectId, its name, its public @handle, its privacy status (private, shared, network, public, or org), and whether it is the one THIS connection reads by default. Use it when the user asks how many profiles they have, what their profiles are called, or which profile you are connected to - and whenever another tool needs a projectId to target a specific profile, because each entry carries its projectId. Do NOT use it to read the user's context, to learn about them, or to set them up with UseMyContext - the profile tool does all three. No file content, no facts, no compiled context. Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: List your profiles
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
profileReturn the user's compiled personal context - a compact structured summary of who they are, synthesized from their accepted facts.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return the user's compiled personal context - a compact structured summary of who they are, synthesized from their accepted facts. Call it at the start of any conversation that involves the user personally, to ground who they are. This is ALSO the tool that sets a user up with UseMyContext: call it when they say 'set me up with UseMyContext', 'get me started', 'get to know me', 'onboard me', or otherwise ask you to learn about them. On a brand-new or empty profile the reply carries the setup instructions to follow; on an established one it carries their context. Do not reach for list_profiles for any of that - it only lists each profile's name, @handle, and privacy status. No file content. Read-only; nothing is written, so it is safe to call. Also reports the profile's privacy status (private, shared, network, public, or org) so you can describe it correctly.
Annotations the server declares
- title: Your profile
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
searchSearch the user's files by filename and return matching documents in the deep-research result shape.No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it Search the user's files by filename and return matching documents in the deep-research result shape. ALIAS: this is the SAME search as search_files (same data, same permissions) - use it when your client requires the id/title/url search contract (ChatGPT deep research); otherwise prefer search_files for richer file metadata. Each result's id can be passed to fetch (or get_file) to read that document. Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: Search (deep research)
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
search_filesSearch the user's files by filename.No findings
Why it is in this group
- The name "search_files" says "search": a word for reading.
Description, as the server wrote it Search the user's files by filename. Returns matching file metadata (including each file's processing status), ranked by name match. Read-only; nothing is written, so it is safe to call.
Annotations the server declares
- title: Search your files
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http usemycontext https://mcp.usemycontext.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__usemycontext__profile",
"mcp__usemycontext__list_profiles",
"mcp__usemycontext__info",
"mcp__usemycontext__list_files",
"mcp__usemycontext__search_files",
"mcp__usemycontext__search",
"mcp__usemycontext__get_file",
"mcp__usemycontext__fetch",
"mcp__usemycontext__ask_docs",
"mcp__usemycontext__shared_context"
],
"ask": [
"mcp__usemycontext__account",
"mcp__usemycontext__query_table",
"mcp__usemycontext__suggest_update"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as usemycontext. Review it before you use it.
