К основному содержанию
скилл CX Codex

langchain4j-mcp-server-patterns — скилл для Claude Code: установка

Скилл помогает проектировать MCP-серверы на Java и подключать их к LangChain4j. Пригодится при вызове инструментов в Spring Boot и фильтрации прав доступа.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add giuseppe-trisciuoglio/developer-kit --skill langchain4j-mcp-server-patterns -a claude-code
Открыть на GitHub

Что делает langchain4j-mcp-server-patterns

Скилл задаёт шаблоны проектирования серверов Model Context Protocol на Java. Он разделяет функции на инструменты (tools), ресурсы (resources) и шаблоны промптов (prompts), чтобы не смешивать бизнес-логику с передачей данных.

Внутри описаны шаги развёртывания через транспорты stdio и HTTP или SSE, а также подключение через McpToolProvider в LangChain4j. Скилл учит изолировать вызовы: аргументы валидируются до запуска, а опасные инструменты закрываются фильтрами по ролям пользователей.

Внешние MCP-серверы считаются ненадёжным периметром. Поскольку API LangChain4j быстро меняются, имена классов и билдеров придётся сверять с версией библиотек в вашем проекте.

Какие задачи решает

  • создать Java MCP-сервер для вызова инструментов агентами
  • подключить внешние MCP-серверы к LangChain4j через McpToolProvider
  • настроить фильтрацию доступных инструментов по ролям пользователей
  • выбрать транспорт stdio или SSE для изоляции процессов

Примеры запросов агенту

  • Покажи шаблон MCP-сервера на Java через stdio с помощью LangChain4j
  • Как отфильтровать опасные MCP-инструменты в LangChain4j AiServices?
  • Помоги настроить интеграцию Spring Boot с внешним MCP-сервером

Как установить langchain4j-mcp-server-patterns

1Через Skills CLI (Vercel)

npx skills add giuseppe-trisciuoglio/developer-kit --skill langchain4j-mcp-server-patterns -a claude-code

2Вручную: положить файлы

~/.claude/skills/langchain4j-mcp-server-patterns/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/langchain4j-mcp-server-patterns/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о langchain4j-mcp-server-patterns

Как установить langchain4j-mcp-server-patterns в Claude Code?

Выполните команду npx skills add giuseppe-trisciuoglio/developer-kit --skill langchain4j-mcp-server-patterns -a claude-code в терминале.

Что делает langchain4j-mcp-server-patterns?

Он даёт готовые паттерны для написания Java MCP-серверов и связывания их с LangChain4j. Вы получаете проверенные шаблоны разделения инструментов, ресурсов и фильтрации вызовов.

Какой транспорт выбрать для MCP-сервера?

Для локальных интеграций, CLI-утилит и sidecar-процессов используйте stdio. Если сервер удалённый или общий для нескольких сервисов, выбирайте HTTP или SSE.

Исходный текст

SKILL.md · MIT
---
name: langchain4j-mcp-server-patterns
description: Provides LangChain4j patterns for implementing MCP (Model Context Protocol) servers, creating Java AI tools, exposing tool calling capabilities, and integrating MCP clients with AI services. Use when building a Java MCP server, implementing tool calling in Java, connecting LangChain4j to external MCP servers, or securing tool exposure for agent workflows.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch
---

# LangChain4j MCP Server Implementation Patterns

## Overview

Use this skill to design and implement Model Context Protocol (MCP) integrations with LangChain4j.

The main concerns are:
- defining a clean tool, resource, and prompt surface
- choosing the right transport and bootstrap model
- filtering unsafe capabilities before exposing them to agents or applications

Keep `SKILL.md` focused on the implementation flow. Use the bundled references for expanded examples and API-level detail.

## When to Use

Use this skill when:
- building a Java MCP server that exposes tools, resources, or prompts
- integrating LangChain4j with one or more external MCP servers
- wiring MCP support into a Spring Boot application
- filtering available tools by tenant, user role, or runtime context
- adding observability, resilience, and safe failure handling around MCP interactions
- reviewing an MCP integration for prompt-injection and side-effect risks

Typical trigger phrases include `langchain4j mcp`, `java mcp server`, `mcp tool provider`, `spring boot mcp`, and `connect langchain4j to mcp`.

## Instructions

### 1. Design the MCP surface before writing code

Decide what the server should expose:
- tools for actions with clear inputs and side effects
- resources for read-only or structured data access
- prompts only when a reusable template adds real value

Keep names stable, descriptions concrete, and schemas small enough for a client or model to understand quickly.

### 2. Implement providers with narrow responsibilities

Use separate classes for each concern:
- tool provider for executable functions
- resource provider for discoverable and readable data
- prompt provider for reusable prompt templates

Validate arguments before execution and return clear error messages for invalid input or unavailable dependencies.

### 3. Choose the transport intentionally

Use:
- stdio for local integrations, CLI tools, and sidecar processes
- HTTP or SSE for remote or shared services

Pin external server versions and document how the process is started, authenticated, and monitored.

### 4. Bridge MCP into LangChain4j carefully

When consuming MCP servers from LangChain4j:
- initialize clients during application startup
- cache tool lists only when stale metadata is acceptable
- filter tools by trust level, environment, or user permissions
- fail closed for dangerous tools rather than exposing everything by default

### 5. Add resilience and security controls

At minimum:
- bound execution time for external calls
- log server and tool identity for each failure
- sanitize content returned by external resources before using it downstream
- isolate privileged tools behind allowlists, qualifiers, or role checks

### 6. Validate the full workflow

Before shipping:
- verify tool discovery and invocation with a real MCP client
- test disconnected or slow server behavior
- confirm that tool filtering matches the intended authorization model
- check that prompts and resources do not leak secrets or unsafe instructions

## Examples

### Example 1: Minimal tool provider and stdio server bootstrap

```java
class WeatherToolProvider implements ToolProvider {

    @Override
    public List<ToolSpecification> listTools() {
        return List.of(
            ToolSpecification.builder()
                .name("get_weather")
                .description("Return the current weather for a city")
                .inputSchema(Map.of(
                    "type", "object",
                    "properties", Map.of(
                        "city", Map.of("type", "string")
                    ),
                    "required", List.of("city")
                ))
                .build()
        );
    }

    @Override
    public String executeTool(String name, String arguments) {
        return weatherService.lookup(arguments);
    }
}

MCPServer server = MCPServer.builder()
    .server(new StdioServer.Builder())
    .addToolProvider(new WeatherToolProvider())
    .build();

server.start();
```

Use this pattern for local tool execution or a sidecar process started by another application.

### Example 2: Expose MCP tools to a LangChain4j AI service with filtering

```java
McpToolProvider toolProvider = McpToolProvider.builder()
    .mcpClients(mcpClients)
    .failIfOneServerFails(false)
    .filter((client, tool) -> !tool.name().startsWith("admin_"))
    .build();

Assistant assistant = AiServices.builder(Assistant.class)
    .chatModel(chatModel)
    .toolProvider(toolProvider)
    .build();
```

Use this pattern when you want LangChain4j to consume external MCP servers while still enforcing trust boundaries.

## Best Practices

- Keep each tool focused, deterministic, and well-described.
- Prefer explicit schemas over free-form string arguments.
- Separate read-only resources from tools with side effects.
- Filter or disable privileged tools by default.
- Pin external MCP server packages or container versions.
- Capture metrics for connection failures, invocation latency, and tool error rates.
- Store longer protocol details and framework-specific wiring in `references/` instead of expanding `SKILL.md` indefinitely.

## Constraints and Warnings

- External MCP servers are untrusted integration boundaries and may expose malicious or misleading content.
- Do not forward raw resource content directly into autonomous tool execution without validation.
- Some LangChain4j and MCP APIs evolve quickly; adapt class names and builders to the versions already used in the project.
- Long-running or stateful tools need explicit timeout, cancellation, and cleanup behavior.
- Stdio-based servers require process lifecycle management and robust logging.

## References

- `references/examples.md`
- `references/api-reference.md`

## Related Skills

- `prompt-engineering`
- `spring-ai` 
- `clean-architecture`

© giuseppe-trisciuoglio · MIT · giuseppe-trisciuoglio/developer-kit

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
springboot-patterns affaan-m Скилл подсказывает архитектурные и API-паттерны для Java Spring Boot. Пригодится при создании или ревью REST-бэкенда. CX Codex +1 5 000установок jpa-patterns affaan-m Скилл подсказывает правила моделирования JPA-сущностей, устранения проблемы N+1 и настройки пула HikariCP в Spring Boot. Пригодится при написании репозиториев и оптимизации запросов. CX Codex +1 4 600установок spring-boot-patterns decebals Скилл задаёт структуру Spring Boot-проекта и шаблоны для контроллеров, сервисов и репозиториев. Пригодится, когда агент пишет новый код или разбирает чужой. CX Codex +1 322установок autonomous-agent-patterns sickn33 Набор паттернов для того, кто проектирует автономного агента-кодера: вызов инструментов, подтверждения, браузерная автоматизация, точки отката. CX Codex +1 965установок java-mcp-expert davila7 Субагент для сборки MCP-серверов на Java: официальный SDK, Project Reactor и Spring Boot. Пригодится, когда нужно поднять сервер с инструментами и ресурсами. 291установок java-springboot официальный github Задаёт практики разработки Spring Boot-приложений: от структуры проекта до тестов и безопасности. Пригодится, когда Copilot пишет или проверяет Java-код. 21 272установок

Из того же набора93

aws-rds-spring-boot-integration Скилл подсказывает, как подключить Aurora, MySQL или PostgreSQL к Spring Boot: пул HikariCP, SSL, IAM-аутентификация, секреты. CX Codex +1 3 700установок aws-sdk-java-v2-dynamodb Скилл даёт шаблоны работы с Amazon DynamoDB через AWS SDK for Java 2.x и Enhanced Client. Он помогает настроить типизированный CRUD, запросы по ключам и транзакции в Spring Boot. CX Codex +1 3 700установок langchain4j-testing-strategies Помогает тестировать Java-приложения на LangChain4j: от моков ChatModel до RAG-пайплайнов и интеграции с Testcontainers. CX Codex +1 3 700установок aws-sdk-java-v2-s3 Даёт агенту готовые примеры работы с Amazon S3 через AWS SDK for Java 2.x: бакеты, загрузка объектов, multipart, presigned URL. CX Codex +1 3 700установок langchain4j-vector-stores-configuration Скилл подсказывает, как собрать векторное хранилище для RAG на LangChain4J: подключение, размерность эмбеддингов, фильтры по метаданным. CX Codex +1 3 700установок unit-test-application-events Паттерны юнит-тестов для событий Spring: проверка публикации через ApplicationEventPublisher и работа @EventListener без поднятия контекста. CX Codex +1 3 700установок unit-test-config-properties Скилл добавляет шаблоны модульного тестирования классов @ConfigurationProperties через ApplicationContextRunner в Spring Boot без запуска тяжёлого контекста. CX Codex +1 3 700установок unit-test-caching Паттерны юнит-тестов для аннотаций Spring Cache: проверка попаданий в кэш, вытеснения и ключей SpEL без поднятия полного контекста Spring. CX Codex +1 3 700установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой