Capacities MCP Server
Capacities MCP Plus
Улучшенный MCP-сервер (Model Context Protocol) для Capacities, обеспечивающий бесшовную интеграцию с вашей системой управления знаниями.
Примечание: Это форк jemgold/capacities-mcp с дополнительными функциями и исправлениями.
Отличия от оригинала
Функция | Оригинал | Plus |
Чтение контента объекта | Недоступно | Получение полного текста заметки по ID объекта |
Версия fastmcp | 1.27.3 | 3.25.4 (исправлена совместимость с MCP SDK) |
Поддержка Windows | Могут быть проблемы | Протестировано с cmd-оберткой |
npm-пакет |
|
|
Новый инструмент: capacities_read_object_content
Получение полного содержимого любого объекта Capacities по его ID:
Сначала пытается использовать недокументированные API-эндпоинты для прямого получения
В случае недоступности прямого доступа переключается на агрегацию через API поиска
Предоставляет параметр title для повышения точности поиска
Related MCP server: ClickUp MCP Server
Функции
Этот MCP-сервер предоставляет доступ ко всем текущим API-эндпоинтам Capacities:
Список пространств - Получение всех ваших личных пространств
Информация о пространстве - Получение подробной структуры и коллекций пространства
Поиск контента - Поиск по пространствам с расширенной фильтрацией
Чтение контента объекта - Получение полного текста заметки по ID объекта
Сохранение веб-ссылок - Сохранение URL в ваши пространства с метаданными
Ежедневные заметки - Добавление контента в ваши ежедневные заметки
Установка
Для Claude Desktop (macOS)
Добавьте в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"capacities": {
"command": "npx",
"args": ["-y", "capacities-mcp-plus"],
"env": {
"CAPACITIES_API_KEY": "your_capacities_api_key_here"
}
}
}
}Для Claude Desktop (Windows)
Для Windows требуется cmd-обертка. Добавьте в %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"capacities": {
"command": "cmd",
"args": ["/c", "npx", "-y", "capacities-mcp-plus"],
"env": {
"CAPACITIES_API_KEY": "your_capacities_api_key_here"
}
}
}
}Получите свой API-ключ Capacities в настройках аккаунта Capacities.
Вот и всё! Сервер будет автоматически загружен и запущен при старте Claude Desktop.
Разработка
Локальная настройка
Для локальной разработки вам нужно клонировать и собрать проект:
Клонируйте этот репозиторий:
git clone https://github.com/Im-Hal-9K/capacities-mcp.git
cd capacities-mcpУстановите зависимости:
npm install
# or
bun installСкопируйте пример файла окружения:
cp .env.example .envДобавьте свой API-ключ Capacities в
.env:
CAPACITIES_API_KEY=your_api_key_hereСоберите сервер:
npm run buildЗапуск сервера
Запустите сервер разработки в интерактивном режиме:
bun run devДля использования в продакшене:
npm run startДля проверки инструментов и схемы сервера:
bun run inspectТестирование
Запустите набор тестов:
bun run testКачество кода
Проверьте линтинг и типы:
bun run lintОтформатируйте код:
bun run formatСправочник API
Получите свой API-ключ Capacities в настройках аккаунта Capacities.
Подробную документацию по API см. здесь:
Доступные инструменты
capacities_list_spaces
Получение списка всех ваших личных пространств.
capacities_get_space_info
Получение подробной информации о конкретном пространстве, включая структуры и коллекции.
spaceId: UUID пространства
capacities_search
Поиск контента по вашим пространствам с дополнительной фильтрацией.
searchTerm: Текст для поиска
spaceIds: Массив UUID пространств для поиска
mode (опционально): Режим поиска "fullText" или "title"
filterStructureIds (опционально): Фильтр по конкретным типам структур
capacities_read_object_content
Получение полного содержимого объекта Capacities по его ID.
objectId: UUID объекта для получения (можно получить через 'Copy object reference' в Capacities)
spaceId: UUID пространства, содержащего объект
title (опционально): Заголовок или часть заголовка объекта — настоятельно рекомендуется для улучшения результатов поиска
Как это работает:
Сначала пытается использовать недокументированные GET-эндпоинты для прямого получения объекта
Переключается на API поиска, собирая контент из выделений и фрагментов
Фильтрует результаты поиска по ID объекта для нахождения точного совпадения
Примечание: При использовании резервного поиска контент может быть неполным, так как он собирается из фрагментов поиска. Указание параметра title значительно улучшает результаты.
capacities_save_weblink
Сохранение веб-ссылки в пространство с дополнительными метаданными.
spaceId: UUID целевого пространства
url: URL для сохранения
titleOverwrite (опционально): Пользовательский заголовок для ссылки
descriptionOverwrite (опционально): Текст описания
tags (опционально): Массив тегов. Теги должны точно соответствовать названиям тегов в Capacities, иначе они будут созданы.
mdText (опционально): Текст в формате markdown, который будет добавлен в раздел заметок
capacities_save_to_daily_note
Добавление markdown-контента в сегодняшнюю ежедневную заметку в пространстве.
spaceId: UUID целевого пространства
mdText: Markdown-контент для добавления
origin (опционально): Метка источника контента (поддерживается только "commandPalette")
noTimestamp (опционально): Если true, временная метка не будет добавлена к заметке
Ограничения частоты запросов (Rate Limits)
API Capacities имеет следующие ограничения:
/spaces: 5 запросов в 60 секунд/space-info: 5 запросов в 60 секунд/search: 120 запросов в 60 секунд/save-weblink: 10 запросов в 60 секунд/save-to-daily-note: 5 запросов в 60 секунд
Примеры промптов
Вот несколько примеров промптов, которые можно использовать с Claude при настроенном MCP-сервере:
Начало работы
"Show me all my Capacities spaces"
"What spaces do I have in Capacities?"Изучение базы знаний
"Get detailed information about my main workspace in Capacities"
"What structures and collections are in my [space name] space?"Поиск контента
"Search for 'project management' across all my Capacities spaces"
"Find all notes mentioning 'machine learning' in my research space"
"Search for 'meeting notes' but only check titles, not full content"Чтение контента
"Read the content of object [object-id] from my research space"
"Get the full note content for [title] in my workspace"Сохранение информации
"Save this article to my research space: https://example.com/article"
"Bookmark this GitHub repo in my coding space with tags 'javascript' and 'tools'"
"Save this link with a custom title and description to my resources space"Ежедневные заметки
"Add a summary of today's key insights to my daily note"
"Save these meeting notes to today's daily note in my work space"
"Add this quote to my daily note: [your quote here]"Продвинутое использование
"Search for 'productivity' in my work and personal spaces, but filter to only show task-related structures"
"Save this research paper to my academic space and add it to today's daily note as well"
"Find all my notes about 'AI tools' and then save the best ones as bookmarks"Авторы
Лицензия
MIT - подробности см. в файле LICENSE.
Available Tools
5 toolscapacities_get_space_infoARead-only
Get detailed information about a specific Capacities space including structures and collections
| Name | Required | Description | Default |
|---|---|---|---|
| spaceId | Yes | The UUID of the space to get information for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating this is a safe read operation that may return varying data. The description adds value by specifying what information is included ('structures and collections'), which provides useful context beyond the annotations. However, it doesn't mention rate limits, authentication needs, or response format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and includes relevant scope details ('including structures and collections'). There's no wasted language, and every element serves to clarify the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and good annotations, the description is reasonably complete. It specifies what information is returned, which compensates for the lack of an output schema. However, it could be more complete by mentioning the response format or any limitations, though annotations cover the safety profile adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'spaceId' fully documented as 'The UUID of the space to get information for'. The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating with extra details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and resource ('a specific Capacities space'), including scope ('including structures and collections'). It distinguishes from 'capacities_list_spaces' by focusing on a single space rather than listing multiple spaces, but doesn't explicitly differentiate from other siblings like 'capacities_search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'a specific Capacities space' and the required spaceId parameter, suggesting this tool is for retrieving details about a known space. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'capacities_search' or mention any prerequisites beyond having a space ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capacities_list_spacesBRead-only
Get a list of all personal spaces in Capacities
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, indicating this is a safe read operation that may return incomplete data. The description adds minimal behavioral context beyond this—it specifies 'all personal spaces' but doesn't mention pagination, rate limits, or what 'personal spaces' entails. With annotations covering safety, a 3 is appropriate as the description adds some value but not rich behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to scan. Every part of the sentence earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, read-only operation), the description is adequate but has gaps. Annotations cover safety, but there's no output schema, so the description doesn't explain return values (e.g., format of the list). For a list operation, more context on output structure would be helpful, but the description meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description correctly doesn't mention any parameters, which is appropriate. Baseline for 0 parameters is 4, as no parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get a list') and resource ('all personal spaces in Capacities'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'capacities_get_space_info' (which presumably gets details for a specific space), but the scope is clear. The description avoids tautology by not just repeating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. It doesn't mention sibling tools like 'capacities_search' (which might search within spaces) or 'capacities_get_space_info' (which gets details for a specific space), nor does it specify any prerequisites or contexts for use. The agent must infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capacities_save_to_daily_noteB
Add markdown text to today's daily note in a Capacities space
| Name | Required | Description | Default |
|---|---|---|---|
| mdText | Yes | The markdown text to add to today's daily note | |
| noTimestamp | No | If true, no time stamp will be added to the note | |
| origin | No | Optional origin label for the content (only 'commandPalette' is supported) | |
| spaceId | Yes | The UUID of the space to save to the daily note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (implying a write operation) and openWorldHint=true (suggesting flexible use), which the description aligns with by describing an 'Add' action. However, it doesn't add significant behavioral context beyond annotations, such as whether the text is appended or overwritten, or any rate limits or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and resource without unnecessary details. It's appropriately sized for the tool's complexity, with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema) and rich annotations, the description is minimally adequate. It covers the basic purpose but lacks details on usage context, behavioral nuances, or output expectations, leaving gaps that could hinder an AI agent's effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema fully documents all parameters, including mdText, noTimestamp, origin, and spaceId. The description mentions 'markdown text' and 'today's daily note', which loosely maps to mdText and implies a date context, but adds minimal semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add markdown text') and target resource ('today's daily note in a Capacities space'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like capacities_save_weblink, which might also involve saving content but to different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives, such as capacities_save_weblink for saving links or capacities_search for finding notes. It lacks context on prerequisites (e.g., needing a valid spaceId) or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capacities_save_weblinkA
Save a web link to a Capacities space with optional title and tags
| Name | Required | Description | Default |
|---|---|---|---|
| descriptionOverwrite | No | Optional description for the weblink | |
| mdText | No | Text formatted as markdown that will be added to the notes section | |
| spaceId | Yes | The UUID of the space to save the weblink to | |
| tags | No | Optional Tags to add to the weblink. Tags need to exactly match your tag names in Capacities, otherwise they will be created. | |
| titleOverwrite | No | Optional custom title for the weblink | |
| url | Yes | The URL to save |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true (supports flexible inputs), which the description aligns with by describing a save operation. It adds context about tag creation if names don't match, but doesn't disclose other behavioral traits like error handling, rate limits, or authentication needs beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and lists optional features. Every word contributes to understanding without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and rich annotations, the description adequately covers the basic operation but lacks details on return values, error conditions, or integration with sibling tools. It's minimally viable given the context but has clear gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description mentions optional title and tags, which map to titleOverwrite and tags parameters, but adds no additional meaning beyond what the schema already provides (e.g., no usage examples or edge cases).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Save a web link') and target resource ('to a Capacities space'), specifying optional features (title and tags). It distinguishes from siblings like capacities_get_space_info (read-only info) and capacities_save_to_daily_note (different target), but doesn't explicitly differentiate from capacities_search (search vs. save).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for saving web links with metadata to a space, but provides no explicit guidance on when to use this tool versus alternatives like capacities_save_to_daily_note (for daily notes) or capacities_search (for finding content). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capacities_searchARead-only
Search for content across Capacities spaces with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| filterStructureIds | No | Optional array of structure IDs to filter results | |
| mode | No | Search mode: fullText or title only | title |
| searchTerm | Yes | The search term to look for | |
| spaceIds | Yes | Array of space UUIDs to search in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, exploratory operation. The description adds minimal behavioral context beyond this, such as mentioning 'optional filtering' but not detailing result formats, pagination, or error handling. It doesn't contradict annotations, so it earns a baseline score for adding some value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Search for content') and includes key details ('across Capacities spaces with optional filtering'). There is no wasted verbiage, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema) and rich annotations, the description is adequate but lacks details on output format or error scenarios. It covers the basic purpose but doesn't fully compensate for the absence of an output schema, leaving gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description mentions 'optional filtering' but doesn't add specific meaning beyond what the schema provides, such as explaining how filtering interacts with search modes. This aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('content across Capacities spaces'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'capacities_list_spaces' or 'capacities_save_to_daily_note', which reduces it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through 'optional filtering' but doesn't specify when to use this tool versus alternatives like 'capacities_list_spaces' for listing spaces or 'capacities_save_to_daily_note' for saving content. It provides some context but lacks explicit guidance on exclusions or comparisons.
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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
capacities_get_space_info - First observed
capacities_list_spaces - First observed
capacities_save_to_daily_note - First observed
capacities_save_weblink - First observed
capacities_search
TDQS
Each tool has a clearly distinct purpose: get_space_info retrieves metadata about a specific space, list_spaces enumerates all spaces, save_to_daily_note adds content to a daily note, save_weblink stores web links, and search performs content searches. There is no overlap or ambiguity in their functions, making it easy for an agent to select the right tool.
All tool names follow a consistent 'capacities_verb_noun' pattern, using snake_case throughout. This predictability aids in understanding and usage, with no deviations in naming conventions across the set.
With 5 tools, the server is well-scoped for its purpose of interacting with Capacities spaces. Each tool serves a specific and necessary function, such as listing spaces, retrieving info, saving content, and searching, without being overly sparse or bloated.
The tool set covers key operations for managing Capacities spaces, including listing, retrieving info, saving notes and links, and searching. A minor gap exists in lacking update or delete operations for saved content, but agents can work around this for most workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Search, read, create and edit your Memol notes from Claude. Team note-taking with AI search.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables querying and retrieving content from Confluence through CQL searches and page content fetching, allowing Claude to seamlessly access information stored in Confluence workspaces.314MIT
- AlicenseAqualityDmaintenanceEnables natural language management of ClickUp workspaces, including task CRUD operations, task listing, and user profile retrieval via Claude Desktop.61MIT
- AlicenseAqualityDmaintenanceEnables Claude Code and other MCP clients to manage bookmarks, collections, and tags in Raindrop.io accounts via natural language.152MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude and Claude Code to interact with Atlassian Cloud (Confluence and Jira) through natural language, supporting full CRUD operations, search, comments, and attachments.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jem-computer/capacities-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server