UseMyContext.ai

The personal context layer for AI.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Profile: Return the user's compiled personal context — a compact structured summary of who they are, synthesized from their accepted facts. No file content. Always allowed.
  • List Files: List the user's files (metadata only: id, name, size, content-type, modified). Always allowed.
  • Search Files: Search the user's files by filename. Returns matching file metadata, ranked by name match. Always allowed.

What data it sees

Do you need an account

No: the server works without sign-in

The personal context layer for AI. You keep one profile of who you are and what you are working on, plus the files that matter, owned by you at usemycontext.ai. Any MCP client reads it, so you never re-introduce yourself to an AI again.

How to connect

How to connect UseMyContext.ai to Claude

The server address to paste into Claude settings:

https://usemycontext.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect UseMyContext.ai to ChatGPT

The server address to paste into ChatGPT settings:

https://usemycontext.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect UseMyContext.ai to Cursor

The server address to paste into Cursor settings:

https://usemycontext.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (8)

Raw names from tools/list. Only developers need these.

profileReturn the user's compiled personal context — a compact structured summary of who they are, synthesized from their accepted facts. No file content. Always allowed.
list_filesList the user's files (metadata only: id, name, size, content-type, modified). Always allowed.
search_filesSearch the user's files by filename. Returns matching file metadata, ranked by name match. Always allowed.
get_fileGet the full text content of one file by id (large files are truncated; use ask_docs for targeted passages). Binary files (images etc.) return a short-lived download link instead. Audited.
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. 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). Always allowed; read-only.
query_tableRun 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; always allowed.
suggest_updateSuggest 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.
shared_contextList and read curated personal context shared with you. With no arguments, lists who shared what (names + ids only, no content). With a `from` selector (a grantId from that list), returns that person's shared profile text. SAVED BY NAME: if the user has saved a context under a short name, pass `saved` (that exact name) to pull it - the service resolves the name to the real source (a share, a teammate, a @handle, or one of the user's own projects) and re-checks access live every time. If that access is gone (revoked, expired, left the team, or closed), it returns a calm "no longer available" note instead of an error. NETWORK: if you already know a member's project @handle, pass `handle` to pull the context they have opened to the UseMyContext network - their live composite, read-only. Each @handle addresses ONE specific project, so the handle alone identifies what to read. ORGANISATION: if you and another person are members of the same UseMyContext team/organisation on an active team plan, pass `org` (the organisation id) and `member` (that teammate's member id) to read their live composite - their curated context only, never their files or facts. There is no directory or browse; you must already know the saved name / handle / org + member ids. Read-only; always allowed; you only ever see what was shared with you, saved by you, opened to the network, or a teammate's context within your own organisation.