bots-garden/mini-mepublic Fork
⑂ main
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. a474616Unverified · on main · k33g · 27d ago
mcp-available-tools.md · 238 lines · 10.8 KBmarkdown
Blame HistoryOpen raw

Available MCP Tools Reference

This document lists the tools available from various MCP servers that can be connected to mini-me.

Overview

Each MCP server provides its own set of tools. When connected, these tools are prefixed with the server name to avoid collisions. For example, the list_repositories tool from the GitHub server becomes github_list_repositories.

Tool Discovery

Tools are discovered at mini-me startup. The discovery process:

  1. Connects to each configured MCP server
  2. Requests the list of available tools via the MCP protocol
  3. Filters out tools that use binary input/output (mini-me only supports text)
  4. Optionally filters by the tools list in the server configuration
  5. Sanitizes tool names to ensure they are valid identifiers

Server-Specific Tools

Wikipedia MCP Server

Server name: wikipedia

Tool Name Prefixed Name Description
search_wikipedia wikipedia_search_wikipedia Search Wikipedia articles
get_article wikipedia_get_article Get full article content
get_summary wikipedia_get_summary Get article summary
get_sections wikipedia_get_sections Get article sections/outline
get_links wikipedia_get_links Get links from an article
get_coordinates wikipedia_get_coordinates Get geographic coordinates
get_related_topics wikipedia_get_related_topics Get related topics
summarize_article_for_query wikipedia_summarize_article_for_query Summarize relevant sections
summarize_article_section wikipedia_summarize_article_section Summarize a specific section
extract_key_facts wikipedia_extract_key_facts Extract key facts
test_wikipedia_connectivity wikipedia_test_wikipedia_connectivity Test connection
list_supported_countries wikipedia_list_supported_countries List supported languages
multi_search_wikipedia wikipedia_multi_search_wikipedia Multi-language search

Context7 MCP Server

Server name: context7

Tool Name Prefixed Name Description
resolve-library-id context7_resolve_library_id Resolve a library name to an ID
query-docs context7_query_docs Query documentation for a library

Usage hints:

  • Call resolve-library-id first to get a library ID
  • Use the library ID with query-docs to search documentation

Example workflow:

1. context7_resolve_library_id(query="React hooks", libraryName="react")
2. context7_query_docs(libraryId="/facebook/react", query="useEffect examples")

GitHub MCP Server

Server name: github

Repository Tools

Tool Name Prefixed Name Description
get_me github_get_me Get authenticated user profile
list_repositories github_list_repositories List user repositories
list_repository_collaborators github_list_repository_collaborators List repository collaborators
create_repository github_create_repository Create a new repository
fork_repository github_fork_repository Fork a repository

Code Tools

Tool Name Prefixed Name Description
get_file_contents github_get_file_contents Get file content
create_or_update_file github_create_or_update_file Create or update a file
delete_file github_delete_file Delete a file
list_branches github_list_branches List repository branches
list_commits github_list_commits List commits
get_commit github_get_commit Get commit details
create_branch github_create_branch Create a new branch
update_pull_request_branch github_update_pull_request_branch Update PR branch
push_files github_push_files Push multiple files

Issue and Pull Request Tools

Tool Name Prefixed Name Description
list_issues github_list_issues List repository issues
issue_read github_issue_read Read issue details
issue_write github_issue_write Create/update issue
list_pull_requests github_list_pull_requests List PRs
pull_request_read github_pull_request_read Read PR details
pull_request_write github_pull_request_write Write PR review
pull_request_review_write github_pull_request_review_write Create/submit PR review
create_pull_request github_create_pull_request Create a new PR
merge_pull_request github_merge_pull_request Merge a PR
update_pull_request github_update_pull_request Update PR
create_or_update_issue github_issue_write Create or update issue
add_issue_comment github_add_issue_comment Add comment to issue
update_issue_comment github_update_issue_comment Update issue comment
add_comment_to_pending_review github_add_comment_to_pending_review Add review comment
add_reply_to_pull_request_comment github_add_reply_to_pull_request_comment Reply to PR comment
add_pull_request_comment github_add_pull_request_comment Add PR comment
get_copilot_job_status github_get_copilot_job_status Get Copilot job status
request_copilot_review github_request_copilot_review Request Copilot review

Search Tools

Tool Name Prefixed Name Description
search_code github_search_code Search code
search_issues github_search_issues Search issues
search_pull_requests github_search_pull_requests Search PRs
search_repositories github_search_repositories Search repositories
search_commits github_search_commits Search commits
search_users github_search_users Search users

Label and Milestone Tools

Tool Name Prefixed Name Description
get_label github_get_label Get a specific label
get_team_members github_get_team_members Get team members
get_teams github_get_teams Get user teams
list_issue_fields github_list_issue_fields List issue fields
list_issue_types github_list_issue_types List issue types
list_releases github_list_releases List releases
list_tags github_list_tags List git tags
get_release_by_tag github_get_release_by_tag Get release by tag
get_latest_release github_get_latest_release Get latest release
get_tag github_get_tag Get tag details

Copilot Tools

Tool Name Prefixed Name Description
create_pull_request_with_copilot github_create_pull_request_with_copilot Create PR with Copilot
assign_copilot_to_issue github_assign_copilot_to_issue Assign Copilot to issue

Sub-Issue Tools

Tool Name Prefixed Name Description
sub_issue_write github_sub_issue_write Add/remove/reprioritize sub-issues

Secret Scanning

Tool Name Prefixed Name Description
run_secret_scanning github_run_secret_scanning Run secret scanning

Tool Name Prefixing

All MCP tools are prefixed with their server name to avoid naming collisions. The format is:

{server_name}_{original_tool_name}

For example:

  • Server: wikipedia, Tool: search_wikipedia → Prefixed: wikipedia_search_wikipedia
  • Server: github, Tool: list_repositories → Prefixed: github_list_repositories
  • Server: context7, Tool: resolve-library-id → Prefixed: context7_resolve_library_id (note: hyphens become underscores)

Tool Name Sanitization

Tool names are sanitized to be valid Go identifiers:

  1. Non-alphanumeric characters are replaced with underscores (_)
  2. Leading/trailing underscores are removed
  3. Multiple consecutive underscores are collapsed to one
  4. If the result is empty, it becomes "tool"

Examples:

  • resolve-library-id → resolve_library_id
  • query-docs → query_docs
  • add-comment_to-pending-review → add_comment_to_pending_review

Required Parameters

Each tool has its own input schema defining required and optional parameters. Required parameters must be provided when calling the tool.

To see the required parameters for a specific tool, use:

Use the {tool_name} tool

Mini-me will show you the tool description including required parameters.

What the model is given

Each MCP tool is declared to the model with the server's input schema, so the model knows the name, type and description of every parameter:

Part of the server's schema Declared to the model
properties (names, type, description, items, nested objects) As is, at every level.
enum Moved into the property's description: How recent. One of: day, week, month.
required Left out; listed in the tool's description (Required parameters: query, language) and checked by mini-me before the call.
additionalProperties: false, $schema Left out.

The constraints are left out because the model's call is validated against the declared schema before the tool runs, and a rejected call ends the turn. Checked by mini-me instead, a missing parameter comes back to the model as [mcp error: missing required parameters: …], which it can read and correct.

Without a declared schema, a model whose tool calls the server parses against the declared parameters — Qwen's XML tool-call format on llama.cpp (dmr, llamacpp, llmman) — sends every call empty.

Tool Filtering

You can filter which tools from a server are exposed by specifying a tools list in the server configuration:

servers:
  - name: github
    transport: http
    url: https://api.githubcopilot.com/mcp/
    auth:
      type: bearer
      tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
    tools:  # Only these tools will be available
      - get_me
      - list_repositories
      - search_code

Binary Tool Filtering

Mini-me only supports text input/output for MCP tools. Any tool that requires binary data (images, audio, etc.) is automatically filtered out and a warning is displayed at startup.

This is a safety measure to ensure compatibility with mini-me's text-only architecture.

Tool Execution

When you use an MCP tool:

  1. Permission check: If permissions are set to ask, you'll be prompted to confirm
  2. Input validation: Required parameters are validated
  3. Timeout: The server's configured timeout applies
  4. Output: Results are returned as text (non-text content is skipped)
  5. Truncation: Output may be truncated if it exceeds maxOutput characters

See Also

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# Available MCP Tools Reference

This document lists the tools available from various MCP servers that can be connected to mini-me.

## Overview

Each MCP server provides its own set of tools. When connected, these tools are prefixed with the server name to avoid collisions. For example, the `list_repositories` tool from the GitHub server becomes `github_list_repositories`.

## Tool Discovery

Tools are discovered at mini-me startup. The discovery process:

1. Connects to each configured MCP server
2. Requests the list of available tools via the MCP protocol
3. Filters out tools that use binary input/output (mini-me only supports text)
4. Optionally filters by the `tools` list in the server configuration
5. Sanitizes tool names to ensure they are valid identifiers

## Server-Specific Tools

### Wikipedia MCP Server

**Server name:** `wikipedia`

| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `search_wikipedia` | `wikipedia_search_wikipedia` | Search Wikipedia articles |
| `get_article` | `wikipedia_get_article` | Get full article content |
| `get_summary` | `wikipedia_get_summary` | Get article summary |
| `get_sections` | `wikipedia_get_sections` | Get article sections/outline |
| `get_links` | `wikipedia_get_links` | Get links from an article |
| `get_coordinates` | `wikipedia_get_coordinates` | Get geographic coordinates |
| `get_related_topics` | `wikipedia_get_related_topics` | Get related topics |
| `summarize_article_for_query` | `wikipedia_summarize_article_for_query` | Summarize relevant sections |
| `summarize_article_section` | `wikipedia_summarize_article_section` | Summarize a specific section |
| `extract_key_facts` | `wikipedia_extract_key_facts` | Extract key facts |
| `test_wikipedia_connectivity` | `wikipedia_test_wikipedia_connectivity` | Test connection |
| `list_supported_countries` | `wikipedia_list_supported_countries` | List supported languages |
| `multi_search_wikipedia` | `wikipedia_multi_search_wikipedia` | Multi-language search |

### Context7 MCP Server

**Server name:** `context7`

| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `resolve-library-id` | `context7_resolve_library_id` | Resolve a library name to an ID |
| `query-docs` | `context7_query_docs` | Query documentation for a library |

**Usage hints:**
- Call `resolve-library-id` first to get a library ID
- Use the library ID with `query-docs` to search documentation

**Example workflow:**
```
1. context7_resolve_library_id(query="React hooks", libraryName="react")
2. context7_query_docs(libraryId="/facebook/react", query="useEffect examples")
```

### GitHub MCP Server

**Server name:** `github`

#### Repository Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `get_me` | `github_get_me` | Get authenticated user profile |
| `list_repositories` | `github_list_repositories` | List user repositories |
| `list_repository_collaborators` | `github_list_repository_collaborators` | List repository collaborators |
| `create_repository` | `github_create_repository` | Create a new repository |
| `fork_repository` | `github_fork_repository` | Fork a repository |

#### Code Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `get_file_contents` | `github_get_file_contents` | Get file content |
| `create_or_update_file` | `github_create_or_update_file` | Create or update a file |
| `delete_file` | `github_delete_file` | Delete a file |
| `list_branches` | `github_list_branches` | List repository branches |
| `list_commits` | `github_list_commits` | List commits |
| `get_commit` | `github_get_commit` | Get commit details |
| `create_branch` | `github_create_branch` | Create a new branch |
| `update_pull_request_branch` | `github_update_pull_request_branch` | Update PR branch |
| `push_files` | `github_push_files` | Push multiple files |

#### Issue and Pull Request Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `list_issues` | `github_list_issues` | List repository issues |
| `issue_read` | `github_issue_read` | Read issue details |
| `issue_write` | `github_issue_write` | Create/update issue |
| `list_pull_requests` | `github_list_pull_requests` | List PRs |
| `pull_request_read` | `github_pull_request_read` | Read PR details |
| `pull_request_write` | `github_pull_request_write` | Write PR review |
| `pull_request_review_write` | `github_pull_request_review_write` | Create/submit PR review |
| `create_pull_request` | `github_create_pull_request` | Create a new PR |
| `merge_pull_request` | `github_merge_pull_request` | Merge a PR |
| `update_pull_request` | `github_update_pull_request` | Update PR |
| `create_or_update_issue` | `github_issue_write` | Create or update issue |
| `add_issue_comment` | `github_add_issue_comment` | Add comment to issue |
| `update_issue_comment` | `github_update_issue_comment` | Update issue comment |
| `add_comment_to_pending_review` | `github_add_comment_to_pending_review` | Add review comment |
| `add_reply_to_pull_request_comment` | `github_add_reply_to_pull_request_comment` | Reply to PR comment |
| `add_pull_request_comment` | `github_add_pull_request_comment` | Add PR comment |
| `get_copilot_job_status` | `github_get_copilot_job_status` | Get Copilot job status |
| `request_copilot_review` | `github_request_copilot_review` | Request Copilot review |

#### Search Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `search_code` | `github_search_code` | Search code |
| `search_issues` | `github_search_issues` | Search issues |
| `search_pull_requests` | `github_search_pull_requests` | Search PRs |
| `search_repositories` | `github_search_repositories` | Search repositories |
| `search_commits` | `github_search_commits` | Search commits |
| `search_users` | `github_search_users` | Search users |

#### Label and Milestone Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `get_label` | `github_get_label` | Get a specific label |
| `get_team_members` | `github_get_team_members` | Get team members |
| `get_teams` | `github_get_teams` | Get user teams |
| `list_issue_fields` | `github_list_issue_fields` | List issue fields |
| `list_issue_types` | `github_list_issue_types` | List issue types |
| `list_releases` | `github_list_releases` | List releases |
| `list_tags` | `github_list_tags` | List git tags |
| `get_release_by_tag` | `github_get_release_by_tag` | Get release by tag |
| `get_latest_release` | `github_get_latest_release` | Get latest release |
| `get_tag` | `github_get_tag` | Get tag details |

#### Copilot Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `create_pull_request_with_copilot` | `github_create_pull_request_with_copilot` | Create PR with Copilot |
| `assign_copilot_to_issue` | `github_assign_copilot_to_issue` | Assign Copilot to issue |

#### Sub-Issue Tools
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `sub_issue_write` | `github_sub_issue_write` | Add/remove/reprioritize sub-issues |

#### Secret Scanning
| Tool Name | Prefixed Name | Description |
|-----------|---------------|-------------|
| `run_secret_scanning` | `github_run_secret_scanning` | Run secret scanning |

## Tool Name Prefixing

All MCP tools are prefixed with their server name to avoid naming collisions. The format is:

```
{server_name}_{original_tool_name}
```

For example:
- Server: `wikipedia`, Tool: `search_wikipedia` → Prefixed: `wikipedia_search_wikipedia`
- Server: `github`, Tool: `list_repositories` → Prefixed: `github_list_repositories`
- Server: `context7`, Tool: `resolve-library-id` → Prefixed: `context7_resolve_library_id` (note: hyphens become underscores)

## Tool Name Sanitization

Tool names are sanitized to be valid Go identifiers:

1. Non-alphanumeric characters are replaced with underscores (`_`)
2. Leading/trailing underscores are removed
3. Multiple consecutive underscores are collapsed to one
4. If the result is empty, it becomes `"tool"`

Examples:
- `resolve-library-id` → `resolve_library_id`
- `query-docs` → `query_docs`
- `add-comment_to-pending-review` → `add_comment_to_pending_review`

## Required Parameters

Each tool has its own input schema defining required and optional parameters. Required parameters must be provided when calling the tool.

To see the required parameters for a specific tool, use:
```
Use the {tool_name} tool
```

Mini-me will show you the tool description including required parameters.

### What the model is given

Each MCP tool is declared to the model with the server's input schema, so the model knows the name, type and description of every parameter:

| Part of the server's schema | Declared to the model |
|---|---|
| `properties` (names, `type`, `description`, `items`, nested objects) | As is, at every level. |
| `enum` | Moved into the property's description: `How recent. One of: day, week, month.` |
| `required` | Left out; listed in the tool's description (`Required parameters: query, language`) and checked by mini-me before the call. |
| `additionalProperties: false`, `$schema` | Left out. |

The constraints are left out because the model's call is validated against the declared schema before the tool runs, and a rejected call ends the turn. Checked by mini-me instead, a missing parameter comes back to the model as `[mcp error: missing required parameters: …]`, which it can read and correct.

Without a declared schema, a model whose tool calls the server parses against the declared parameters — Qwen's XML tool-call format on llama.cpp (`dmr`, `llamacpp`, `llmman`) — sends every call empty.

## Tool Filtering

You can filter which tools from a server are exposed by specifying a `tools` list in the server configuration:

```yaml
servers:
  - name: github
    transport: http
    url: https://api.githubcopilot.com/mcp/
    auth:
      type: bearer
      tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
    tools:  # Only these tools will be available
      - get_me
      - list_repositories
      - search_code
```

## Binary Tool Filtering

Mini-me **only supports text input/output** for MCP tools. Any tool that requires binary data (images, audio, etc.) is automatically filtered out and a warning is displayed at startup.

This is a safety measure to ensure compatibility with mini-me's text-only architecture.

## Tool Execution

When you use an MCP tool:

1. **Permission check:** If permissions are set to `ask`, you'll be prompted to confirm
2. **Input validation:** Required parameters are validated
3. **Timeout:** The server's configured timeout applies
4. **Output:** Results are returned as text (non-text content is skipped)
5. **Truncation:** Output may be truncated if it exceeds `maxOutput` characters

## See Also

- [MCP Configuration](configuration.md)
- [MCP Architecture](explanation/architecture.md)