KURA Notes MCP Client

KURA Notes MCP Client

Enables Claude Desktop to interact with KURA Notes API for semantic search, note creation, retrieval, and management. Supports natural language queries to search, create, retrieve, list, and delete notes with metadata like titles, tags, and annotations.

Category
访问服务器

README

KURA MCP Client

A Model Context Protocol (MCP) client that enables Claude Desktop to interact with KURA Notes API. This standalone client provides semantic search, note creation, retrieval, and management capabilities through Claude's native interface.

Features

  • Semantic Search: Find relevant notes using natural language queries
  • Note Creation: Create text notes with metadata (title, tags, annotations)
  • Note Retrieval: Get specific notes by ID or list recent notes
  • Note Management: Delete notes when needed
  • Robust Error Handling: Clear error messages for API issues
  • Logging: Detailed logging to stderr for debugging

Prerequisites

  • Node.js >= 20.0.0
  • Claude Desktop application
  • KURA Notes API access (API key required)

Installation

  1. Clone or download this repository:

    git clone <repository-url>
    cd kura-mcp-client
    
  2. Install dependencies:

    npm install
    
  3. Build the project:

    npm run build
    

    This will:

    • Compile TypeScript to JavaScript
    • Generate the dist/index.js file
    • Make the output file executable

Configuration

For Claude Desktop

Add the following configuration to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "kura-notes": {
      "command": "node",
      "args": ["/absolute/path/to/kura-mcp-client/dist/index.js"],
      "env": {
        "API_KEY": "your-kura-api-key-here",
        "KURA_API_URL": "https://kura.tillmaessen.de"
      }
    }
  }
}

Important: Replace /absolute/path/to/kura-mcp-client with the actual absolute path to this project directory.

Environment Variables

  • API_KEY (required): Your KURA Notes API authentication key
  • KURA_API_URL (optional): The KURA API base URL (defaults to https://kura.tillmaessen.de)

Available Tools

1. kura_search

Perform semantic search across your KURA Notes.

Parameters:

  • query (string, required): The search query
  • limit (number, optional): Maximum number of results (default: 10)
  • contentType (string, optional): Filter by content type (e.g., "text")
  • tags (string, optional): Comma-separated tags to filter by

Example:

Search my notes for "machine learning algorithms"

Response: Array of search results with relevance scores and metadata.

2. kura_create

Create a new text note in KURA Notes.

Parameters:

  • content (string, required): The main content of the note
  • title (string, optional): Title for the note
  • annotation (string, optional): Additional context or annotation
  • tags (array of strings, optional): Tags to categorize the note

Example:

Create a note with the content "Today I learned about semantic search"
and tag it with "learning" and "ai"

Response: Created note with ID and metadata.

3. kura_get

Retrieve a specific note by its ID.

Parameters:

  • id (string, required): The unique identifier of the note

Example:

Get the note with ID "abc123"

Response: Full note content and metadata, or error if not found.

4. kura_list_recent

List the 20 most recent notes with metadata (without full content).

Parameters: None

Example:

Show me my recent notes

Response: Array of recent notes with metadata.

5. kura_delete

Delete a note by its ID. This action is permanent.

Parameters:

  • id (string, required): The unique identifier of the note to delete

Example:

Delete the note with ID "abc123"

Response: Success confirmation or error if not found.

Usage Examples

Once configured in Claude Desktop, you can use natural language to interact with your KURA Notes:

  1. Search for notes:

    • "Search my KURA notes for information about TypeScript"
    • "Find notes tagged with 'project-ideas'"
  2. Create notes:

    • "Create a note: 'Meeting notes from today's standup...'"
    • "Save this idea to KURA: 'Build a note-taking MCP client'"
  3. Retrieve notes:

    • "Get the full content of note ID xyz789"
    • "Show me my recent notes"
  4. Delete notes:

    • "Delete note abc123"

Troubleshooting

Server not starting

Symptom: Claude Desktop shows connection error

Solutions:

  • Verify Node.js version: node --version (should be >= 20.0.0)
  • Check the absolute path in claude_desktop_config.json is correct
  • Ensure the project is built: npm run build
  • Check that dist/index.js exists and is executable

API_KEY error

Symptom: "ERROR: API_KEY environment variable is required"

Solutions:

  • Verify API_KEY is set in the env section of your Claude Desktop config
  • Restart Claude Desktop after changing the config
  • Check for typos in the config file

Authentication errors

Symptom: "401 Unauthorized" or "403 Forbidden" errors

Solutions:

  • Verify your API key is correct and active
  • Check if the API key has the necessary permissions
  • Ensure the Authorization header format is correct

Network errors

Symptom: "Failed to fetch" or connection timeout errors

Solutions:

  • Verify KURA_API_URL is correct and accessible
  • Check your internet connection
  • Verify the KURA API service is running

Viewing logs

The MCP client logs to stderr. To view logs:

macOS/Linux:

  1. Close Claude Desktop
  2. Run from terminal:
    /Applications/Claude.app/Contents/MacOS/Claude 2>&1 | grep "KURA MCP"
    

Windows: Check the Claude Desktop logs in the application data directory.

Development

Project Structure

kura-mcp-client/
├── README.md           # This file
├── package.json        # Project configuration and dependencies
├── tsconfig.json       # TypeScript compiler configuration
├── .gitignore          # Git ignore rules
├── src/
│   └── index.ts        # Main MCP server implementation
└── dist/
    └── index.js        # Compiled JavaScript (after build)

Development Commands

# Install dependencies
npm install

# Build the project (compile TypeScript)
npm run build

# Run in development mode (with hot reload)
npm run dev

# Clean build artifacts
npm run clean

# Rebuild from scratch
npm run clean && npm run build

Running Tests Manually

You can test the MCP server manually:

# Set environment variables
export API_KEY="your-api-key"
export KURA_API_URL="https://kura.tillmaessen.de"

# Run the server (it will wait for MCP protocol messages on stdin)
node dist/index.js

The server communicates via JSON-RPC over stdin/stdout, so manual testing requires sending properly formatted MCP protocol messages.

Code Structure

The main implementation in src/index.ts includes:

  • TypeScript Interfaces: Type definitions for KURA API responses
  • Environment Validation: Checks for required API_KEY
  • callKuraAPI(): Helper function for authenticated API requests
  • MCP Server Setup: Initializes the MCP server with stdio transport
  • Tool Definitions: Defines the 5 available tools with schemas
  • Request Handlers:
    • ListToolsRequestSchema: Returns available tools
    • CallToolRequestSchema: Executes tool calls with error handling

Adding New Tools

To add new tools:

  1. Add the tool definition to the tools array
  2. Add a new case in the CallToolRequestSchema handler
  3. Implement the API call and response handling
  4. Update this README with the new tool documentation

API Reference

The client interacts with these KURA Notes API endpoints:

  • GET /api/search - Semantic search
  • POST /api/capture - Create notes
  • GET /api/content/{id} - Get specific note
  • GET /api/content/recent - List recent notes
  • DELETE /api/content/{id} - Delete note

All requests include Authorization: Bearer {API_KEY} header.

Technical Details

  • Protocol: Model Context Protocol (MCP) via stdio
  • Transport: JSON-RPC over stdin/stdout
  • Language: TypeScript compiled to ES2022
  • Runtime: Node.js >= 20.0.0
  • SDK: @modelcontextprotocol/sdk v1.x

License

MIT

Contributing

Contributions are welcome! Please ensure:

  • TypeScript code follows the existing style
  • All tools have proper error handling
  • Documentation is updated for new features
  • Code compiles without errors

Support

For issues related to:

  • This MCP client: Check the troubleshooting section above
  • KURA Notes API: Contact your KURA API administrator
  • Claude Desktop: Visit Anthropic's support
  • MCP Protocol: See MCP documentation

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选