Skip to main content
Glama

mcp-wiki-helper-tools

MCP-сервер для просмотра Wiki, хранящейся в Git-репозитории.

Он синхронизирует Wiki, индексирует Markdown-файлы и предоставляет инструменты для перечисления, поиска и чтения документов в Codex или VS Code.

Возможности

Инструмент

Что делает

Server

Проверяет, работает ли MCP.

list_documents

Перечисляет документы Wiki.

search_documents

Ищет по имени или пути документа.

search_content

Ищет внутри содержимого документов.

read_document

Читает полный Markdown-документ.

Related MCP server: knowledge-mcp

Как это работает

  1. MCP клонирует или обновляет Git-репозиторий Wiki.

  2. Находит все файлы .md.

  3. Создаёт индекс в памяти.

  4. Предоставляет инструменты через HTTP-маршрут /mcp.

  5. Периодически обновляет Wiki.

Папка, указанная в WIKI_LOCAL_PATH, обновляется с помощью git reset --hard. Не вносите в неё ручные изменения, так как они будут отброшены.

1. Настройка сервера

На машине, где будет работать MCP, перейдите в папку проекта:

cd "/caminho/para/mcp-wiki-helper"

Установите зависимости:

npm install

Создайте файл .env:

cp .env.example .env

Заполните .env:

WIKI_REPOSITORY_URL=git@github.com:empresa/wiki.git
WIKI_LOCAL_PATH=./data/wiki
WIKI_BRANCH=main
WIKI_SYNC_INTERVAL_MS=1800000

MCP_HTTP_HOST=0.0.0.0
MCP_HTTP_PORT=3000
MCP_HTTP_ROUTE=/mcp

Для упрощения первого теста в локальной сети не настраивайте MCP_API_KEY.

2. Запуск сервера

Скомпилируйте:

npm run build

Запустите:

npm run start:http

Держите этот терминал открытым. Ожидаемое сообщение:

[MCP] HTTP ativo em http://0.0.0.0:3000/mcp

Узнайте IP-адрес машины:

hostname -I

При необходимости откройте порт в локальной сети:

sudo ufw allow from 192.168.0.0/16 to any port 3000 proto tcp

3. Проверка подключения

На другой машине выполните:

curl http://IP_DO_SERVIDOR:3000/health

Пример:

curl http://192.168.3.233:3000/health

Ожидаемый ответ:

{
  "status": "ok",
  "documents": 100
}

Поле documents должно быть больше нуля.

4. Подключение к Codex

В Codex:

  1. Откройте Settings.

  2. Перейдите в MCP servers.

  3. Нажмите + Add server.

  4. Выберите тип URL/HTTP.

  5. Используйте имя wiki-helper.

  6. Заполните только URL:

http://IP_DO_SERVIDOR:3000/mcp

Пример:

http://192.168.3.233:3000/mcp

Оставьте эти поля полностью пустыми:

  • Bearer token env var

  • Headers

  • Headers from environment variables

Не пишите none в полях аутентификации.

Затем:

  1. Сохраните сервер.

  2. Включите переключатель рядом с wiki-helper.

  3. Откройте новый разговор в Codex.

  4. Отправьте:

Use list_documents do MCP wiki-helper e mostre os primeiros 10 documentos.

Если Codex сообщает, что переменная окружения none не существует:

  1. Откройте Settings > MCP servers > wiki-helper.

  2. Нажмите Uninstall.

  3. Добавьте снова, заполнив только URL.

  4. Оставьте все поля аутентификации пустыми.

5. Подключение в VS Code/Copilot

В VS Code:

  1. Нажмите Ctrl+Shift+P.

  2. Выполните MCP: Open User Configuration.

  3. Поместите в файл mcp.json:

{
  "servers": {
    "wiki-helper": {
      "type": "http",
      "url": "http://IP_DO_SERVIDOR:3000/mcp"
    }
  }
}

Затем выполните MCP: List Servers, выберите wiki-helper и выберите Start Server.

6. Примеры использования

Проверить сервер:

Use a ferramenta Server do MCP wiki-helper.

Перечислить документы:

Use list_documents do wiki-helper e mostre os primeiros 10 documentos.

Поиск по имени:

Use search_documents do wiki-helper para procurar "autenticação".

Поиск внутри Wiki:

Use search_content do wiki-helper para pesquisar "JWT", com limite 5.

Прочитать документ:

Use read_document do wiki-helper para ler "caminho/documento.md" e faça um resumo.

Частые проблемы

Ошибка ECONNREFUSED ...:80

В URL отсутствует порт или маршрут. Всегда используйте:

http://IP_DO_SERVIDOR:3000/mcp

Открылся маршрут /authorize

Клиент попытался использовать OAuth. Этот MCP не поддерживает OAuth. Удалите аутентификацию и оставьте поля Bearer и Headers пустыми.

MCP не подключается

Проверьте на серверной машине:

npm run start:http
ss -lntp | grep 3000

Проверьте снова на клиентской машине:

curl http://IP_DO_SERVIDOR:3000/health

Wiki не возвращает документы

Проверьте, содержит ли настроенная папка Markdown-файлы:

find ./data/wiki -type f -name '*.md' | head

Также проверьте доступ к Git-репозиторию, указанному в WIKI_REPOSITORY_URL.

Безопасность

  • Используйте этот режим без аутентификации только в контролируемой локальной сети.

  • Не открывайте порт 3000 напрямую в интернет.

  • Для внешнего доступа используйте HTTPS, аутентификацию и обратный прокси.

  • Никогда не сохраняйте ключи или учётные данные в .env в системе контроля версий.

Available Tools

5 tools
list_documentsList DocumentsB

Lista todos os documentos disponíveis na Wiki.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool lists documents, but it does not describe what the returned list contains (e.g., IDs, titles, pagination, ordering, or whether it returns the full set or a sample). For a tool with no annotations and no output schema, this is insufficient for an agent to predict the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence in Portuguese that is direct and front-loaded with the core action and object. There is no extraneous information, and it is appropriately concise for a tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description must compensate. It only says 'lists all documents' but does not specify what fields are returned, whether the result is paginated, or any other details an agent might need to consume the output. For a potentially large list, this is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is trivially 100%. Per the calibration rules, when there are no parameters the baseline score is 4. The description does not need to explain parameters that don't exist, and it correctly avoids inventing any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lista' = list) and the resource ('todos os documentos disponíveis na Wiki' = all documents available in the Wiki). It is distinct from the sibling tools by name and verb (list vs. search/read), but it does not explicitly call out the differentiation, so it loses a point for not addressing the sibling context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the search or read tools. There is no mention of use cases, limitations, or alternatives. An agent would have to infer that list_documents is for enumerating all documents, but it has no explicit instruction on when that is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_documentRead DocumentB

Lê o conteúdo de um documento da Wiki pelo caminho.

NameRequiredDescriptionDefault
pathYesCaminho do documento, por exemplo: "software/JWT.md"

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It states that reading returns content, but does not mention error behavior for nonexistent paths, response format, or any side effects (though likely safe). This is a significant gap for a tool with zero annotation context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. The core action and resource are front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and no output schema, the description is adequate but not thorough. It explains the purpose and parameter, but lacks information about return value format or error handling, which would be useful without an output schema to clarify.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the 'path' parameter described and an example provided. The tool description adds no extra meaning about parameters beyond what the schema already covers, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (read), the resource (document content of the Wiki), and the method (by path). This distinguishes it from siblings like list_documents (listing) and search_documents/search_content (searching), so an agent can differentiate without extra info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of conditions like 'use this when you have a known path' or exclusions against using search tools. The context is minimal and relies on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_contentSearch Wiki ContentC

Pesquisa termos dentro do conteúdo dos documentos Markdown da Wiki.

NameRequiredDescriptionDefault
limitNoQuantidade máxima de documentos retornados.
queryYesTermos que devem ser pesquisados na Wiki.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states the search action and target content, but omits details like case sensitivity, matching behavior, result ordering, or what happens with no matches. This is minimal and does not go beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is in Portuguese and adds no value beyond the schema. It is not overloaded, yet it also lacks useful context or differentiation, so it is acceptable but minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters and no output schema, the description does not explain return format, errors, or how it differs from the very similar sibling 'search_documents'. This incompleteness could lead to incorrect usage or choice of the wrong tool, so more detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both 'query' and 'limit' thoroughly. The description does not add any extra meaning about parameters; it only restates that it searches terms, which matches the schema's existing text. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches terms within wiki Markdown content, using a specific verb and resource. However, it does not differentiate from the sibling tool 'search_documents', which appears to have a nearly identical purpose, leaving ambiguity about which search tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool rather than alternatives like 'search_documents', 'list_documents', or 'read_document'. The description only says what it does, not when to use it, so an agent gets no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_documentsSearch DocumentsC

Busca documentos da Wiki pelo nome ou caminho.

NameRequiredDescriptionDefault
queryYesTexto para pesquisar.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations to back up the description, so the description carries the full burden of disclosing behavioral traits. It merely states what is searched (name/path) but does not disclose the nature of the search (exact match, fuzzy), whether results are paginated, what is returned (list of documents? paths?), or any side effects. Since it's a search, it's likely read-only, but that isn't stated. This is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the main action and scope. No unnecessary words. It is concise and readable. It would earn a 5 if it included a bit more useful context, but for its brevity it is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with one parameter and no output schema, the description should explain what the result looks like (e.g., a list of matches) or mention any limitations. It lacks this. Additionally, because there is a sibling 'search_content', the description should clarify the difference, but it doesn't. The description is too minimal to fully equip an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameter (query) with a description ('Texto para pesquisar.'). The tool description adds no additional meaning about the parameter's semantics, such as case sensitivity, wildcards, or format. With full schema coverage, the baseline is 3, and the description does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('busca' – search), a resource ('documentos da Wiki' – Wiki documents), and a scope ('pelo nome ou caminho' – by name or path). This gives a clear purpose and implicitly differentiates from the sibling 'search_content' (which likely searches content). However, it does not explicitly name the sibling or articulate the differentiation, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the alternatives (list_documents, read_document, search_content). It does not mention exclusions, prerequisites, or contexts where another tool would be more appropriate. Without this, an agent may struggle to choose the correct tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ServerServer checkA

Verifica se o servidor MCP está funcionando.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'verifies if the server is working' without specifying what the response looks like (e.g., a status field, a boolean, an error-free execution), or whether there are any side effects. This is a significant gap for a tool that an agent must interpret.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly worded sentence. It is front-loaded with the core action and resource, with no filler. For a tool with no parameters, this is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and no annotations, the description must explain what an agent can expect from a call. It only states the check occurs but does not describe the return value, possible error conditions, or how to interpret the result. This is incomplete for a tool that an agent would call and need to act on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the schema has 100% coverage (no params to describe). Per the rubric, a 0-parameter tool gets a baseline of 4, and the description does not need to add parameter-specific meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Verifica' / checks) and a specific resource (the MCP server), making the tool's purpose unambiguous. It is also clearly distinct from the sibling tools (which are all document-related), so an agent can tell it apart without extra context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is for checking server health, but gives no explicit guidance on when to use it versus alternatives. Since the siblings are unrelated, there is no confusion, but no explicit when/when-not or alternative naming is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedlist_documents
    • First observedread_document
    • First observedsearch_content
    • First observedsearch_documents
    • First observedServer

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: health check, list all documents, read by path, search by name/path, and search content. No overlap or ambiguity exists among the tool operations.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (list_documents, read_document, search_documents, search_content). The lone exception is 'Server,' which is a single-word health check and slightly breaks the pattern, but it remains readable and predictable.

Tool Count5/5

At 5 tools, the server is well-scoped for a wiki helper. Each tool covers a fundamental operation without redundancy or bloat, and the count is within the ideal 3-15 range.

Completeness4/5

The surface provides list, read, and two search capabilities, covering the primary read-only workflows for a wiki. It lacks create/update/delete operations, but these may be intentionally out of scope for a helper; minor gaps exist but are easily worked around by external tools.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers