agentleFS
PerkyZZ999PerkyZZ999/MemorizedMCP/.cursor/rules/guide-for-using-mcp-servers.mdc

MemorizedMCP / rules

Cursor rule8 starsChanged 14 months agoMITView on GitHub

Helps organize thoughts, break down problems, and build reasoning step by step. Allows safe interaction with files and directories within allowed paths.

The file

Show its rules and text

We split this guide-for-using-mcp-servers.mdc into the rules it gives an agent

27 rules. About 0 are common, 27 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈27

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    branch_thought: Create a branched path in reasoning from a previous step.

    line 67
  2. Distinctive:

    revise_thought: Update or revise a previous thought.

    line 74
  3. Distinctive:

    read_file: Read the contents of a file.

    line 99
  4. Distinctive:

    read_multiple_files: Read several files at once.

    line 106
  5. Distinctive:

    git_commit: Commit staged changes with a message.

    line 211
  6. Distinctive:

    git_status: Check for changed or untracked files.

    line 232
  7. Distinctive:

    run-react-app: Start the development server for an app.

    line 320
  8. Distinctive:

    run-command: Run any shell command in a directory.

    line 327
  9. Distinctive:

    stop-process: Stop a process by its ID.

    line 341
  10. Distinctive:

    edit-file: Write or update file content.

    line 355
  11. Distinctive:

    read-file: Read a specific file’s contents.

    line 362
  12. Distinctive:

    run-node-script: Run a script file with arguments and input.

    line 392
  13. Distinctive:

    new_page: Create a new page.

    line 576
  14. Distinctive:

    performance_start_trace: Start a performance trace, optionally auto-reload/stop.

    line 608
  15. Distinctive:

    performance_stop_trace: Stop active trace.

    line 616
  16. Distinctive:

    wait_for: Wait for text to appear on the page.

    line 646
  17. Distinctive:

    system.backup: Create a backup snapshot.

    line 706
  18. Distinctive:

    kg.create_entity: Create or ensure an entity node exists.

    line 786
  19. Distinctive:

    kg.create_relation: Create a relation between two nodes.

    line 794
  20. Distinctive:

    kg.search_nodes: Search nodes by type and pattern.

    line 802
  21. Distinctive:

    kg.tag_entity: Add tags to an entity.

    line 818
  22. Distinctive:

    kg.remove_tag: Remove tags from an entity.

    line 834
  23. Distinctive:

    kg.delete_entity: Delete an entity and its edges.

    line 842
  24. Distinctive:

    kg.delete_relation: Delete a specific relation.

    line 850
  25. Distinctive:

    memory.add: Add a memory; classify STM/LTM.

    line 858
  26. Distinctive:

    memory.update: Update memory content/metadata.

    line 878
  27. Distinctive:

    memory.delete: Delete a memory (optionally back up first).

    line 886

≈ “Common” is an estimate: at least 1 in 5 of the 6,668 Cursor rule files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
guide-for-using-mcp-servers.mdc
---
description:
globs:
alwaysApply: true
---

# MCP Server AI Agent Usage Guide

## Table of Contents

- [MCP Server AI Agent Usage Guide](#mcp-server-ai-agent-usage-guide)
  - [Table of Contents](#table-of-contents)
  - [Sequential Thinking MCP Server](#sequential-thinking-mcp-server)
    - [Purpose](#purpose)
    - [Supported Operations](#supported-operations)
      - [Additional Inputs](#additional-inputs)
  - [FileSystem MCP Server](#filesystem-mcp-server)
    - [Purpose](#purpose-1)
    - [Supported Operations](#supported-operations-1)
  - [Fetch MCP Server](#fetch-mcp-server)
    - [Purpose](#purpose-2)
    - [Supported Operations](#supported-operations-2)
  - [Git MCP Server](#git-mcp-server)
    - [Purpose](#purpose-3)
    - [Supported Operations](#supported-operations-3)
  - [ShadCN-UI MCP Server](#shadcn-ui-mcp-server)
    - [Purpose](#purpose-4)
    - [Supported Operations](#supported-operations-4)
  - [React MCP Server](#react-mcp-server)
    - [Purpose](#purpose-5)
    - [Supported Operations](#supported-operations-5)
  - [NodeJS MCP Server](#nodejs-mcp-server)
    - [Purpose](#purpose-6)
    - [Supported Operations](#supported-operations-6)
  - [Chrome DevTools MCP Server](#chrome-devtools-mcp-server)
    - [Purpose](#purpose-7)
    - [Supported Operations](#supported-operations-7)
  - [Grep MCP Server](#grep-mcp-server)
    - [Purpose](#purpose-8)
    - [Supported Operations](#supported-operations-8)
  - [MemorizedMCP Server](#memorizedmcp-server)
    - [Purpose](#purpose-9)
    - [Supported Operations](#supported-operations-9)

## Sequential Thinking MCP Server

### Purpose

Helps organize thoughts, break down problems, and build reasoning step by step.

### Supported Operations

- **sequential_thought:** Submit a reasoning step or thought.
    - Example:

```json
{ "thought": "Step 1: Identify the problem" }
```

- **progress_status:** Track progress within a sequence of thoughts.
    - Example:

```json
{}
```

- **branch_thought:** Create a branched path in reasoning from a previous step.
    - Example:

```json
{ "branchFromThought": 2, "branchId": "alternative1" }
```

- **revise_thought:** Update or revise a previous thought.
    - Example:

```json
{ "revisesThought": 3, "thought": "Updated consideration for step 3" }
```


#### Additional Inputs

- `thought`: The current reasoning step.
- `nextThoughtNeeded`: Boolean for more steps.
- `thoughtNumber`: Current step index.
- `totalThoughts`: Planned total steps.
- Branching supports `branchFromThought` and `branchId`.


## FileSystem MCP Server

### Purpose

Allows safe interaction with files and directories within allowed paths.

### Supported Operations

- **read_file:** Read the contents of a file.
    - Example:

```json
{ "path": "/projects/myfile.txt" }
```

- **read_multiple_files:** Read several files at once.
    - Example:

```json
{ "paths": ["/projects/a.txt", "/projects/b.txt"] }
```

- **write_file:** Overwrite or create a file with desired content.
    - Example:

```json
{ "path": "/projects/output.txt", "content": "Hello World" }
```

- **edit_file:** Apply specified edits to a file (use dryRun for safety).
    - Example:

```json
{ "path": "/projects/config.json", "edits": [ { "oldText": "foo", "newText": "bar" } ], "dryRun": true }
```

- **create_directory:** Make a new directory, parents included.
    - Example:

```json
{ "path": "/projects/newdir" }
```

- **list_directory:** Show files and folders inside a directory.
    - Example:

```json
{ "path": "/projects" }
```

- **move_file:** Move or rename files and directories.
    - Example:

```json
{ "source": "/projects/old.txt", "destination": "/projects/new.txt" }
```

- **search_files:** Recursively find files by pattern.
    - Example:

```json
{ "path": "/projects", "pattern": "*.md" }
```

- **get_file_info:** Get details such as size and timestamps.
    - Example:

```json
{ "path": "/projects/readme.md" }
```

- **list_allowed_directories:** Show which directories are accessible.
    - Example:

```json
{}
```


## Fetch MCP Server

### Purpose

Fetches web content from URLs, returning plain text or markdown.

### Supported Operations

- **fetch:** Retrieve web page content as markdown or raw data.
    - Example:

```json
{
  "url": "https://example.com",
  "max_length": 5000,
  "start_index": 0,
  "raw": false
}
```

    - `url`: Required.
    - `max_length`: Optional limit (default 5000 characters).
    - `start_index`: Optional, starts at a specific index.
    - `raw`: Optional, set to true for raw HTML/text.


## Git MCP Server

### Purpose

Allows automated version control on repositories including cloning, commits, status, and logs.

### Supported Operations

- **git_clone:** Clone a repository by URL to a destination.
    - Example:

```json
{ "repo_url": "https://github.com/user/repo.git", "destination": "/projects/repo" }
```

- **git_commit:** Commit staged changes with a message.
    - Example:

```json
{ "message": "Fix issue #123" }
```

- **git_push:** Push committed changes upstream.
    - Example:

```json
{}
```

- **git_pull:** Pull the latest changes from the remote.
    - Example:

```json
{}
```

- **git_status:** Check for changed or untracked files.
    - Example:

```json
{}
```

- **git_log:** View recent commit history, optionally limit results.
    - Example:

```json
{ "limit": 10 }
```


## ShadCN-UI MCP Server

### Purpose

Lets you access shadcn/ui v4 React components, code, demos, blocks, and metadata.

### Supported Operations

- **get_component:** Get a component’s source code.
    - Example:

```json
{ "componentName": "button" }
```

- **get_component_demo:** See component usage examples.
    - Example:

```json
{ "componentName": "button" }
```

- **list_components:** Show all available components.
    - Example:

```json
{}
```

- **get_component_metadata:** Fetch dependencies or config for a component.
    - Example:

```json
{ "componentName": "button" }
```

- **get_block:** Fetch a full UI block (like a signup or dashboard set).
    - Example:

```json
{ "blockName": "dashboard-01" }
```

- **list_blocks:** List every block, grouped by type.
    - Example:

```json
{}
```

- **get_directory_structure:** Show the component library directory tree.
    - Example:

```json
{}
```


## React MCP Server

### Purpose

Automates full React project workflows: creation, file management, running, and process control.

### Supported Operations

- **create-react-app:** Make a new app, optionally with a template.
    - Example:

```json
{ "name": "my-app", "template": "typescript", "directory": "/projects" }
```

- **run-react-app:** Start the development server for an app.
    - Example:

```json
{ "projectPath": "/projects/my-app" }
```

- **run-command:** Run any shell command in a directory.
    - Example:

```json
{ "command": "npm run build", "directory": "/projects/my-app" }
```

- **get-process-output:** Get output logs from a running process.
    - Example:

```json
{ "processId": "123456" }
```

- **stop-process:** Stop a process by its ID.
    - Example:

```json
{ "processId": "123456" }
```

- **list-processes:** Show all current running processes.
    - Example:

```json
{}
```

- **edit-file:** Write or update file content.
    - Example:

```json
{ "filePath": "/projects/my-app/src/App.js", "content": "// new code" }
```

- **read-file:** Read a specific file’s contents.
    - Example:

```json
{ "filePath": "/projects/my-app/src/App.js" }
```

- **install-package:** Install an npm package, optional dev flag.
    - Example:

```json
{ "packageName": "react-router-dom", "directory": "/projects/my-app", "dev": true }
```

- **check-installation-status:** Review package installation state.
    - Example:

```json
{ "processId": "987654" }
```


## NodeJS MCP Server

### Purpose

Controls and automates execution of Node.js scripts, npm scripts, and direct eval code.

### Supported Operations

- **run-node-script:** Run a script file with arguments and input.
    - Example:

```json
{
  "scriptPath": "/scripts/my-script.js",
  "nodeArgs": [],
  "args": ["arg1", "arg2"],
  "stdin": "input data",
  "cwd": "/projects"
}
```

- **run-npm-script:** Execute scripts from a package.json in a directory.
    - Example:

```json
{
  "packageDir": "/projects/my-app",
  "scriptName": "start",
  "args": [],
  "stdin": ""
}
```

- **run-node-eval:** Evaluate JavaScript code within Node.js.
    - Example:

```json
{
  "code": "console.log('Hello world')",
  "evalDirectory": "/projects/my-app",
  "stdin": ""
}
```

- **node-version:** Get information about the Node.js runtime.
    - Example:

```json
"node-version://info"
```

- **npm-scripts:** List possible npm scripts for a directory.
    - Example:

```json
"npm-scripts:///projects/my-app"
```


## Chrome DevTools MCP Server

### Purpose

Automates Chrome debugging and page interaction via the DevTools Protocol. Enables navigation, DOM actions, network inspection, performance tracing, and screenshots.

### Supported Operations

- **list_console_messages:** List all console messages for the currently selected page.
  - Example:

```json
{}
```

- **emulate_cpu:** Emulate CPU throttling.
  - Inputs: `throttlingRate` (number, 1-20)
  - Example:

```json
{ "throttlingRate": 4 }
```

- **emulate_network:** Emulate network conditions.
  - Inputs: `throttlingOption` ("No emulation" | "Slow 3G" | "Fast 3G" | "Slow 4G" | "Fast 4G")
  - Example:

```json
{ "throttlingOption": "Fast 3G" }
```

- **click:** Click an element.
  - Inputs: `uid` (string), `dblClick` (optional boolean)
  - Example:

```json
{ "uid": "el_123" }
```

- **drag:** Drag an element onto another.
  - Inputs: `from_uid` (string), `to_uid` (string)
  - Example:

```json
{ "from_uid": "el_item", "to_uid": "el_dropzone" }
```

- **fill:** Type into an input/textarea or select an option.
  - Inputs: `uid` (string), `value` (string)
  - Example:

```json
{ "uid": "el_email", "value": "user@example.com" }
```

- **fill_form:** Fill multiple elements at once.
  - Inputs: `elements`: [{ `uid`, `value` }]
  - Example:

```json
{ "elements": [ { "uid": "el_email", "value": "user@example.com" }, { "uid": "el_pwd", "value": "secret" } ] }
```

- **hover:** Hover over an element.
  - Inputs: `uid` (string)
  - Example:

```json
{ "uid": "el_menu" }
```

- **upload_file:** Upload a file via an input.
  - Inputs: `uid` (string), `filePath` (string)
  - Example:

```json
{ "uid": "el_file", "filePath": "C:/path/file.png" }
```

- **get_network_request:** Get a specific network request by URL.
  - Inputs: `url` (string)

```json
{ "url": "https://example.com/api/data" }
```

- **list_network_requests:** List network requests with optional filtering.
  - Inputs: `pageSize` (optional number), `pageIdx` (optional number), `resourceTypes` (optional array)
  - Example:

```json
{ "pageSize": 50, "resourceTypes": ["xhr", "fetch"] }
```

- **close_page:** Close a page by index (cannot close the last open page).
  - Inputs: `pageIdx` (number)
  - Example:

```json
{ "pageIdx": 1 }
```

- **handle_dialog:** Accept/dismiss browser dialogs.
  - Inputs: `action` ("accept" | "dismiss"), `promptText` (optional)
  - Example:

```json
{ "action": "accept" }
```

- **list_pages:** List open pages.
  - Example:

```json
{}
```

- **navigate_page:** Navigate the selected page to a URL.
  - Inputs: `url` (string)
  - Example:

```json
{ "url": "https://example.com" }
```

- **navigate_page_history:** Go back or forward in history.
  - Inputs: `navigate` ("back" | "forward")
  - Example:

```json
{ "navigate": "back" }
```

- **new_page:** Create a new page.
  - Inputs: `url` (string)
  - Example:

```json
{ "url": "https://example.com" }
```

- **resize_page:** Resize the window of the selected page.
  - Inputs: `width` (number), `height` (number)
  - Example:

```json
{ "width": 1280, "height": 800 }
```

- **select_page:** Select a page by index.
  - Inputs: `pageIdx` (number)
  - Example:

```json
{ "pageIdx": 0 }
```

- **performance_analyze_insight:** Get details on a specific performance insight.
  - Inputs: `insightName` (string)
  - Example:

```json
{ "insightName": "DocumentLatency" }
```

- **performance_start_trace:** Start a performance trace, optionally auto-reload/stop.
  - Inputs: `reload` (boolean), `autoStop` (boolean)
  - Example:

```json
{ "reload": true, "autoStop": true }
```

- **performance_stop_trace:** Stop active trace.
  - Example:

```json
{}
```

- **take_screenshot:** Screenshot page or element.
  - Inputs: `format` ("png" | "jpeg"), `uid` (optional string), `fullPage` (optional boolean)
  - Example:

```json
{ "format": "png", "fullPage": true }
```

- **evaluate_script:** Evaluate JS on the selected page.
  - Inputs: `function` (stringified function), `args` (optional array of element refs)
  - Example:

```json
{ "function": "() => document.title" }
```

- **take_snapshot:** Capture a text snapshot of the page to obtain element UIDs.
  - Example:

```json
{}
```

- **wait_for:** Wait for text to appear on the page.
  - Inputs: `text` (string)
  - Example:

```json
{ "text": "Welcome" }
```


## Grep MCP Server

### Purpose

Searches over a large index of public GitHub repositories. Returns code snippets matching patterns with filters for language, repository, and file path.

### Supported Operations

- **grep-search:** Execute a code search.
  - Inputs:
    - `query` (string): literal code or regex pattern
    - `matchCase` (optional boolean)
    - `matchWholeWords` (optional boolean)
    - `useRegexp` (optional boolean)
    - `repo` (optional string)
    - `path` (optional string)
    - `language` (optional string[])
  - Example (regex across languages):

```json
{
  "query": "(?s)server\\.tool.*catch",
  "language": ["TypeScript", "JavaScript"],
  "useRegexp": true
}
```


## MemorizedMCP Server

### Purpose

Provides a hybrid memory system (knowledge graph + embeddings + full‑text + documentary memory) for agents to store and retrieve information with rich relationships.

### Supported Operations

- **system.status:** Return health and runtime metrics (uptime, indices, storage, metrics, memory, health).
  - Example:

```json
{}
```

- **system.cleanup:** Maintenance cleanup.
  - Inputs: `reindex` (boolean), `compact` (boolean)
  - Example:

```json
{ "reindex": false, "compact": true }
```

- **system.backup:** Create a backup snapshot.
  - Inputs: `destination` (optional string), `includeIndices` (boolean)
  - Example:

```json
{ "destination": "./backups", "includeIndices": true }
```

- **system.restore:** Restore from snapshot.
  - Inputs: `source` (string), `includeIndices` (boolean)
  - Example:

```json
{ "source": "./backups/2025-09-27", "includeIndices": true }
```

- **document.store:** Ingest PDF/Markdown/Text; parse and index.
  - Inputs: `path` (optional string), `mime` (optional "pdf"|"md"|"txt"), `content` (optional string), `metadata` (object)
  - Example:

```json
{ "mime": "md", "content": "# Title\nHello" }
```

- **document.retrieve:** Retrieve document by id/hash/path.
  - Inputs: one of `id` | `hash` | `path`
  - Example:

```json
{ "id": "DOC_123" }
```

- **document.analyze:** Get key concepts, entities, summary, related docs.
  - Inputs: `id` (string)
  - Example:

```json
{ "id": "DOC_123" }
```

- **document.refs_for_memory:** List document refs associated with a memory.
  - Inputs: `id` (memory id)
  - Example:

```json
{ "id": "MEM_123" }
```

- **document.refs_for_document:** List memories referencing a document.
  - Inputs: `id` (document id)
  - Example:

```json
{ "id": "DOC_123" }
```

- **document.validate_refs:** Validate/correct memory↔document references.
  - Inputs: `fix` (boolean)
  - Example:

```json
{ "fix": true }
```

- **kg.list_entities:** List top entities by mention count.
  - Inputs: `limit` (number)
  - Example:

```json
{ "limit": 50 }
```

- **kg.get_entity:** Get detailed information about an entity.
  - Inputs: `entity` (string)
  - Example:

```json
{ "entity": "Python" }
```

- **kg.create_entity:** Create or ensure an entity node exists.
  - Inputs: `entity` (string)
  - Example:

```json
{ "entity": "Python" }
```

- **kg.create_relation:** Create a relation between two nodes.
  - Inputs: `src` (string), `dst` (string), `relation` (string, optional)
  - Example:

```json
{ "src": "Entity::Python", "dst": "Document::abc123", "relation": "MENTIONS" }
```

- **kg.search_nodes:** Search nodes by type and pattern.
  - Inputs: `type` (string, optional), `pattern` (string, optional), `limit` (number)
  - Example:

```json
{ "type": "Entity", "pattern": "python", "limit": 10 }
```

- **kg.read_graph:** Get graph snapshot with configurable limit.
  - Inputs: `limit` (number)
  - Example:

```json
{ "limit": 100 }
```

- **kg.tag_entity:** Add tags to an entity.
  - Inputs: `entity` (string), `tags` (array of strings)
  - Example:

```json
{ "entity": "Python", "tags": ["language", "backend"] }
```

- **kg.get_tags:** Get all tags or entities by a specific tag.
  - Inputs: `tag` (string, optional)
  - Example:

```json
{ "tag": "language" }
```

- **kg.remove_tag:** Remove tags from an entity.
  - Inputs: `entity` (string), `tags` (array of strings)
  - Example:

```json
{ "entity": "Python", "tags": ["backend"] }
```

- **kg.delete_entity:** Delete an entity and its edges.
  - Inputs: `entity` (string)
  - Example:

```json
{ "entity": "Python" }
```

- **kg.delete_relation:** Delete a specific relation.
  - Inputs: `src` (string), `dst` (string), `relation` (string, optional)
  - Example:

```json
{ "src": "Entity::Python", "dst": "Document::abc123", "relation": "MENTIONS" }
```

- **memory.add:** Add a memory; classify STM/LTM; optionally link docs.
  - Inputs: `content` (string), `metadata` (object, optional), `references` (array of { `docId` (string), `chunkId` (optional string), `score` (optional number) }), `layer_hint` ("STM"|"LTM"), `session_id` (optional string), `episode_id` (optional string)
  - Example:

```json
{
  "content": "User prefers dark mode",
  "references": [ { "docId": "DOC_123", "chunkId": "2" } ],
  "layer_hint": "STM"
}
```

- **memory.search:** Hybrid search with temporal filters.
  - Inputs: `q` (string), `limit` (number), `layer` (optional "STM"|"LTM"), `episode` (optional string), `from` (epoch ms), `to` (epoch ms)
  - Example:

```json
{ "q": "dark mode", "limit": 20 }
```

- **memory.update:** Update memory content/metadata.
  - Inputs: `id` (string), `content` (optional string), `metadata` (optional object)
  - Example:

```json
{ "id": "MEM_123", "content": "Updated preference" }
```

- **memory.delete:** Delete a memory (optionally back up first).
  - Inputs: `id` (string), `backup` (boolean)
  - Example:

```json
{ "id": "MEM_123", "backup": true }
```

- **advanced.consolidate:** Promote STM → LTM, deduplicate salient memories.
  - Inputs: `dryRun` (boolean), `limit` (number)
  - Example:

```json
{ "dryRun": false, "limit": 100 }
```

- **advanced.analyze_patterns:** Mine recurring concepts and trends.
  - Inputs: `window` ({ `from`: number, `to`: number }), `minSupport` (number)
  - Example:

```json
{ "window": { "from": 0, "to": 4102444800000 }, "minSupport": 2 }
```

- **advanced.reindex:** Rebuild indices.
  - Inputs: `vector` (boolean), `text` (boolean), `graph` (boolean)
  - Example:

```json
{ "vector": true, "text": true, "graph": true }
```

- **advanced.trends:** Time-bucketed memory counts.
  - Inputs: `from` (number), `to` (number), `buckets` (number)
  - Example:

```json
{ "from": 0, "to": 4102444800000, "buckets": 10 }
```

- **advanced.clusters:** Document clusters.
  - Inputs: `{}`
  - Example:

```json
{}
```

- **advanced.relationships:** Relationship group counts.
  - Inputs: `{}`
  - Example:

```json
{}
```

- **advanced.effectiveness:** Memory effectiveness scores.
  - Inputs: `{}`
  - Example:

```json
{}
```

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.