Waterticket

MCP Server for Rhymix

Community Waterticket
Updated

A Model Context Protocol (MCP) server that can be applied to Rhymix.

MCP Server for Rhymix

๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด | ๐Ÿ‡บ๐Ÿ‡ธ English

English

Overview

MCP Server is a Model Context Protocol (MCP) server module that can be applied to the Rhymix CMS. This module provides a standardized interface for AI clients to access Rhymix's data and functionality.

This module is a program that ports php-mcp/server for use in Rhymix. For MCP tool, prompt, and plugin development, you should refer to the above repository.

[!IMPORTANT]This module requires advanced knowledge of servers and Rhymix during the installation process. When changing server settings, you must be aware of what you are doing and proceed accordingly.

What is Model Context Protocol (MCP)?

MCP is an open standard protocol designed to allow AI assistants to securely connect to external tools and data sources. This allows AI clients to leverage the capabilities of various applications and services.

Key Features

  • โœจ Standardized MCP Protocol support
  • ๐Ÿ”ง Extensible Tool System - Users can develop their own MCP tools
  • ๐Ÿ” Automatic Directory Scanning - Automatically scans for MCP plugins from separate modules

Installation Requirements

  • PHP 8.2 or higher
  • Rhymix 2.1 or higher
  • Linux Shell access required

Installation Method

  1. Copy the module to the modules/mcpserver directory of Rhymix.
  2. Configure settings in Advanced > Installed Modules > MCP Server.

Configuration Options

Server Settings
  • Server Name: MCP server identifier
  • Server Version: Version information
  • Host: IP address the server will bind to (default: 127.0.0.1)
  • Port: Port the server will use (default: 8080)
  • MCP Path: MCP endpoint path (default: /mcp)
Communication Settings
  • Enable SSE: Whether to use Server-Sent Events
  • Stateless Mode: Whether to enable stateless mode
Logging Settings
  • Log Output: Enable console log output
  • Log Level: Select log level to output (DEBUG, INFO, WARNING, ERROR, etc.)

Running MCP Server

This module requires running a server separate from Rhymix. Refer to Module > Configuration Manual to run the script and make necessary reverse proxy configuration changes in server programs like nginx.

Developing Custom MCP Tools

Basic Structure

Custom MCP tools are created in the modules/(any module)/mcp/ directory. All MCP tool classes must inherit from \Rhymix\Modules\Mcpserver\Models\MCPServerInterface.

Example: Calculator Tool (ExampleCalculatorElements.php)
<?php

namespace Rhymix\Modules\Mcpserver\Mcp;

use Rhymix\Modules\Mcpserver\Models\MCPServerInterface;
use PhpMcp\Server\Attributes\McpTool;
use PhpMcp\Server\Attributes\Schema;

/**
 * Example MCP tool providing calculator functionality
 */
class ExampleCalculatorElements extends MCPServerInterface
{
    /**
     * Adds two numbers.
     * 
     * @param int $a First number
     * @param int $b Second number  
     * @return int Sum of two numbers
     */
    #[McpTool(name: 'add_numbers')]
    public function add(int $a, int $b): int
    {
        return $a + $b;
    }

    /**
     * Calculates power with validation.
     */
    #[McpTool(name: 'calculate_power')]
    public function power(
        #[Schema(type: 'number', minimum: 0, maximum: 1000)]
        float $base,
        
        #[Schema(type: 'integer', minimum: 0, maximum: 10)]
        int $exponent
    ): float {
        return pow($base, $exponent);
    }
}
Creating New MCP Tool Classes
  1. Create File: Create a new PHP file (YourCustomTool.php) in the modules/example/mcp/ directory.

  2. Basic Class Structure:

<?php

namespace Rhymix\Modules\Example\Mcp;

use Rhymix\Modules\Mcpserver\Models\MCPServerInterface;
use PhpMcp\Server\Attributes\McpTool;
use PhpMcp\Server\Attributes\Schema;

/**
 * Custom MCP Tool
 */
class YourCustomTool extends MCPServerInterface
{
    /**
     * Example tool method
     */
    #[McpTool(name: 'your_tool_name')]
    public function yourMethod($param1, $param2)
    {
        // Implement business logic here
        return "Result";
    }
}
Rhymix Database Access Example
<?php

namespace Rhymix\Modules\Example\Mcp;

use Rhymix\Modules\Mcpserver\Models\MCPServerInterface;
use PhpMcp\Server\Attributes\McpTool;

class RhymixDatabaseTool extends MCPServerInterface
{
    /**
     * Retrieves member information.
     */
    #[McpTool(name: 'get_member_info')]
    public function getMemberInfo(int $member_srl): array
    {
        // Execute Rhymix database query
        $output = executeQuery('member.getMemberInfoByMemberSrl', ['member_srl' => $member_srl]);
        
        if (!$output->toBool()) {
            throw new \Exception('Cannot get member info: ' . $output->getMessage());
        }
        
        $member = $output->data;
        return [
            'member_srl' => $member->member_srl,
            'user_id' => $member->user_id,
            'nick_name' => $member->nick_name,
            'email_address' => $member->email_address
        ];
    }

    /**
     * Retrieves document list.
     */
    #[McpTool(name: 'get_document_list')]
    public function getDocumentList(int $module_srl, int $page = 1): array
    {
        $args = new \stdClass();
        $args->module_srl = $module_srl;
        $args->page = $page;
        $args->list_count = 10;
        
        $output = executeQueryArray('document.getDocumentList', $args);
        
        if (!$output->toBool()) {
            throw new \Exception('Cannot get document list: ' . $output->getMessage());
        }
        
        return [
            'total_count' => $output->total_count,
            'documents' => $output->data
        ];
    }
}
Schema Validation

In MCP tools, you can set validation for input parameters using the Schema attribute:

#[McpTool(name: 'validated_tool')]
public function validatedMethod(
    #[Schema(type: 'string', minLength: 1, maxLength: 100)]
    string $text,
    
    #[Schema(type: 'integer', minimum: 1, maximum: 999)]
    int $number,
    
    #[Schema(type: 'number', minimum: 0.0, maximum: 100.0)]
    float $percentage
): array {
    return [
        'text' => $text,
        'number' => $number,
        'percentage' => $percentage
    ];
}

For more information, please refer to php-mcp/server.

Debugging

Log Checking

The MCP server outputs detailed logs according to configuration. Through logs, you can check:

  • Client connection/disconnection
  • Tool calls and responses
  • Error and exception information
Connection Testing

Use the "Local Connection Test" function on the admin page to verify that the MCP server is working properly.

Precautions

  • Use MCP server with appropriate firewall settings in security-critical environments.
  • It is recommended to disable DEBUG log level in production environments.
  • Perform appropriate permission checks when working with databases in custom tools.

License

This module is distributed under the GPL v2 license.

Developer

Technical Support

If you encounter problems or need help:

  1. Ask questions in the Rhymix Official Community
  2. Register GitHub issues (if applicable)

Korean

๊ฐœ์š”

MCP Server๋Š” ๋ผ์ด๋ฏน์Šค(Rhymix) CMS์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Model Context Protocol (MCP) ์„œ๋ฒ„ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์„ ํ†ตํ•ด AI ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ผ์ด๋ฏน์Šค์˜ ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“ˆ์€ php-mcp/server๋ฅผ ๋ผ์ด๋ฏน์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํฌํŒ…ํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. MCP ํˆด, ํ”„๋กฌํ”„ํŠธ, ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ์€ ์œ„ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ฐœ๋ฐœํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

[!IMPORTANT]๋ณธ ๋ชจ๋“ˆ์€ ์„ค์น˜๊ณผ์ •์—์„œ ์„œ๋ฒ„ ๋ฐ ๋ผ์ด๋ฏน์Šค์— ๋Œ€ํ•œ ๊ณ ๋„์˜ ์ง€์‹์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ž์‹ ์ด ๋ฌด์Šจ ์ž‘์—…์„ ํ•˜๋Š”์ง€ ์ธ์ง€ํ•˜๊ณ  ์ง„ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Model Context Protocol (MCP)๋ž€?

MCP๋Š” AI ์–ด์‹œ์Šคํ„ดํŠธ๊ฐ€ ์™ธ๋ถ€ ๋„๊ตฌ์™€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AI ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • โœจ ํ‘œ์ค€ํ™”๋œ MCP ํ”„๋กœํ† ์ฝœ ์ง€์›
  • ๐Ÿ”ง ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํˆด ์‹œ์Šคํ…œ - ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ MCP ํˆด์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ
  • ๐Ÿ” ์ž๋™ ๋””๋ ‰ํ† ๋ฆฌ ์Šค์บ” - ๋ณ„๋„์˜ ๋ชจ๋“ˆ์—์„œ MCP ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๋™ ์Šค์บ”

์„ค์น˜ ์š”๊ตฌ์‚ฌํ•ญ

  • PHP 8.2 ์ด์ƒ
  • Rhymix 2.1 ์ด์ƒ
  • Linux Shell ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ

์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ๋ชจ๋“ˆ์„ ๋ผ์ด๋ฏน์Šค์˜ modules/mcpserver ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ ๊ธ‰ > ์„ค์น˜๋œ ๋ชจ๋“ˆ > MCP Server ์—์„œ ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ์˜ต์…˜

์„œ๋ฒ„ ์„ค์ •

  • ์„œ๋ฒ„ ์ด๋ฆ„: MCP ์„œ๋ฒ„์˜ ์‹๋ณ„๋ช…
  • ์„œ๋ฒ„ ๋ฒ„์ „: ๋ฒ„์ „ ์ •๋ณด
  • ํ˜ธ์ŠคํŠธ: ์„œ๋ฒ„๊ฐ€ ๋ฐ”์ธ๋”ฉ๋  IP ์ฃผ์†Œ (๊ธฐ๋ณธ: 127.0.0.1)
  • ํฌํŠธ: ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉํ•  ํฌํŠธ (๊ธฐ๋ณธ: 8080)
  • MCP ๊ฒฝ๋กœ: MCP ์—”๋“œํฌ์ธํŠธ ๊ฒฝ๋กœ (๊ธฐ๋ณธ: /mcp)

ํ†ต์‹  ์„ค์ •

  • SSE ํ™œ์„ฑํ™”: Server-Sent Events ์‚ฌ์šฉ ์—ฌ๋ถ€
  • Stateless ๋ชจ๋“œ: ๋ฌด์ƒํƒœ ๋ชจ๋“œ ํ™œ์„ฑํ™” ์—ฌ๋ถ€

๋กœ๊น… ์„ค์ •

  • ๋กœ๊ทธ ์ถœ๋ ฅ: ์ฝ˜์†” ๋กœ๊ทธ ์ถœ๋ ฅ ํ™œ์„ฑํ™”
  • ๋กœ๊ทธ ๋ ˆ๋ฒจ: ์ถœ๋ ฅํ•  ๋กœ๊ทธ ๋ ˆ๋ฒจ ์„ ํƒ (DEBUG, INFO, WARNING, ERROR ๋“ฑ)

MCP ์„œ๋ฒ„ ์‹คํ–‰

๋ณธ ๋ชจ๋“ˆ์€ ๋ผ์ด๋ฏน์Šค์™€ ๋ณ„๋„๋กœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ > ์„ค์ • ๋งค๋‰ด์–ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , nginx์™€ ๊ฐ™์€ ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„ค์ • ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ •์˜ MCP ํˆด ๊ฐœ๋ฐœ

๊ธฐ๋ณธ ๊ตฌ์กฐ

์‚ฌ์šฉ์ž ์ •์˜ MCP ํˆด์€ modules/(์ž„์˜์˜ ๋ชจ๋“ˆ)/mcp/ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  MCP ํˆด ํด๋ž˜์Šค๋Š” \Rhymix\Modules\Mcpserver\Models\MCPServerInterface๋ฅผ ์ƒ์†๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ: ๊ณ„์‚ฐ๊ธฐ ํˆด (ExampleCalculatorElements.php)

<?php

namespace Rhymix\Modules\Mcpserver\Mcp;

use Rhymix\Modules\Mcpserver\Models\MCPServerInterface;
use PhpMcp\Server\Attributes\McpTool;
use PhpMcp\Server\Attributes\Schema;

/**
 * ๊ณ„์‚ฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” MCP ํˆด ์˜ˆ์ œ
 */
class ExampleCalculatorElements extends MCPServerInterface
{
    /**
     * ๋‘ ์ˆ˜๋ฅผ ๋”ํ•ฉ๋‹ˆ๋‹ค.
     * 
     * @param int $a ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž
     * @param int $b ๋‘ ๋ฒˆ์งธ ์ˆซ์ž  
     * @return int ๋‘ ์ˆซ์ž์˜ ํ•ฉ
     */
    #[McpTool(name: 'add_numbers')]
    public function add(int $a, int $b): int
    {
        return $a + $b;
    }

    /**
     * ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค (์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํฌํ•จ).
     */
    #[McpTool(name: 'calculate_power')]
    public function power(
        #[Schema(type: 'number', minimum: 0, maximum: 1000)]
        float $base,
        
        #[Schema(type: 'integer', minimum: 0, maximum: 10)]
        int $exponent
    ): float {
        return pow($base, $exponent);
    }
}

์ƒˆ๋กœ์šด MCP ํˆด ํด๋ž˜์Šค ์ƒ์„ฑํ•˜๊ธฐ

  1. ํŒŒ์ผ ์ƒ์„ฑ: modules/example/mcp/ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒˆ PHP ํŒŒ์ผ(YourCustomTool.php)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  2. ๊ธฐ๋ณธ ํด๋ž˜์Šค ๊ตฌ์กฐ:

<?php

namespace Rhymix\Modules\Example\Mcp;

use Rhymix\Modules\Mcpserver\Models\MCPServerInterface;
use PhpMcp\Server\Attributes\McpTool;
use PhpMcp\Server\Attributes\Schema;

/**
 * ์‚ฌ์šฉ์ž ์ •์˜ MCP ํˆด
 */
class YourCustomTool extends MCPServerInterface
{
    /**
     * ํˆด ๋ฉ”์„œ๋“œ ์˜ˆ์ œ
     */
    #[McpTool(name: 'your_tool_name')]
    public function yourMethod($param1, $param2)
    {
        // ์—ฌ๊ธฐ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„
        return "๊ฒฐ๊ณผ";
    }
}

๋ผ์ด๋ฏน์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ์˜ˆ์ œ

<?php

namespace Rhymix\Modules\Example\Mcp;

use Rhymix\Modules\Mcpserver\Models\MCPServerInterface;
use PhpMcp\Server\Attributes\McpTool;

class RhymixDatabaseTool extends MCPServerInterface
{
    /**
     * ํšŒ์› ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
     */
    #[McpTool(name: 'get_member_info')]
    public function getMemberInfo(int $member_srl): array
    {
        // ๋ผ์ด๋ฏน์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ์‹คํ–‰
        $output = executeQuery('member.getMemberInfoByMemberSrl', ['member_srl' => $member_srl]);
        
        if (!$output->toBool()) {
            throw new \Exception('ํšŒ์› ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ' . $output->getMessage());
        }
        
        $member = $output->data;
        return [
            'member_srl' => $member->member_srl,
            'user_id' => $member->user_id,
            'nick_name' => $member->nick_name,
            'email_address' => $member->email_address
        ];
    }

    /**
     * ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
     */
    #[McpTool(name: 'get_document_list')]
    public function getDocumentList(int $module_srl, int $page = 1): array
    {
        $args = new \stdClass();
        $args->module_srl = $module_srl;
        $args->page = $page;
        $args->list_count = 10;
        
        $output = executeQueryArray('document.getDocumentList', $args);
        
        if (!$output->toBool()) {
            throw new \Exception('๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ' . $output->getMessage());
        }
        
        return [
            'total_count' => $output->total_count,
            'documents' => $output->data
        ];
    }
}

์Šคํ‚ค๋งˆ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

MCP ํˆด์—์„œ๋Š” Schema ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

#[McpTool(name: 'validated_tool')]
public function validatedMethod(
    #[Schema(type: 'string', minLength: 1, maxLength: 100)]
    string $text,
    
    #[Schema(type: 'integer', minimum: 1, maximum: 999)]
    int $number,
    
    #[Schema(type: 'number', minimum: 0.0, maximum: 100.0)]
    float $percentage
): array {
    return [
        'text' => $text,
        'number' => $number,
        'percentage' => $percentage
    ];
}

์ด์™ธ์˜ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์›ํ•œ๋‹ค๋ฉด php-mcp/server๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋””๋ฒ„๊น…

๋กœ๊ทธ ํ™•์ธ

MCP ์„œ๋ฒ„๋Š” ์„ค์ •์— ๋”ฐ๋ผ ์ƒ์„ธํ•œ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ/ํ•ด์ œ
  • ํˆด ํ˜ธ์ถœ ๋ฐ ์‘๋‹ต
  • ์˜ค๋ฅ˜ ๋ฐ ์˜ˆ์™ธ ์ •๋ณด

์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ

๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ "๋กœ์ปฌ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ" ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ MCP ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์˜์‚ฌํ•ญ

  • MCP ์„œ๋ฒ„๋Š” ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ ์ ˆํ•œ ๋ฐฉํ™”๋ฒฝ ์„ค์ •๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” DEBUG ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜ ํˆด์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—… ์‹œ ์ ์ ˆํ•œ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

๋ผ์ด์„ ์Šค

์ด ๋ชจ๋“ˆ์€ GPL v2 ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž

๊ธฐ์ˆ  ์ง€์›

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋„์›€์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ:

  1. ๋ผ์ด๋ฏน์Šค ๊ณต์‹ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์งˆ๋ฌธ
  2. GitHub ์ด์Šˆ ๋“ฑ๋ก (ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ)

MCP Server ยท Populars

MCP Server ยท New

    gradion-ai

    ipybox

    A lightweight and secure Python code execution sandbox based on IPython and Docker

    Community gradion-ai
    CrowdStrike

    falcon-mcp

    Connect AI agents to CrowdStrike Falcon for automated security analysis and threat hunting

    Community CrowdStrike
    robotmcp

    ROS MCP Server

    Quickly connect AI agents with Physical Robots (ROS/ROS2) via MCP. No code changes needed in ROS

    Community robotmcp
    seekrays

    SeekCode

    A clean and efficient code snippet and clipboard management tool designed for developers

    Community seekrays
    perplexityai

    Perplexity Ask MCP Server

    A Model Context Protocol Server connector for Perplexity API, to enable web search without leaving the MCP ecosystem.

    Community perplexityai