Skip to main content
Glama
Bigsy

clj-kondo MCP Server

by Bigsy

clj-kondo MCP 服务器npm 版本

一个模型上下文协议 (MCP) 服务器,为 Clojure/ClojureScript/EDN 文件提供 clj-kondo linting 功能。对于没有内置 linting 功能的 Claude 代码和桌面环境来说,这非常方便。您可以考虑编辑 CLAUDE.md 文件,并在编辑后启用 lint 功能。

特征

  • 通过 MCP 工具调用对 Clojure 文件进行 Lint

  • 支持所有 clj-kondo 分析功能

  • 可选的显式配置目录支持

Related MCP server: shadow-cljs-mcp

安装

快速安装

npx clj-kondo-mcp

或 IDE 配置

{
  "mcpServers": {
    "clj-kondo": {
      "command": "npx",
      "args": ["clj-kondo-mcp"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

手动安装

  1. 安装 clj-kondo:确保已安装clj-kondo并将其添加到系统 PATH 中。请参阅适用于您平台的安装说明。

  2. 安装依赖项:

npm install
  1. 构建服务器:

npm run build

用法

运行服务器

node build/index.js

MCP 工具调用

服务器提供了一个工具:

lint_clojure - Lint Clojure/ClojureScript/EDN 内容

参数:

{
  "file": "/absolute/path/to/file.clj", // Must be absolute path - can be a file, directory, or classpath
  "configDir": "/absolute/path/to/config/dir", // Optional, must be absolute path if provided
  "level": "warning" // Optional, defaults to error level
}

file参数接受:

  • 单个文件路径(例如“/path/to/src/my_file.clj”)

  • 目录路径(例如“/path/to/src”) - 将递归地检查所有 .clj、.cljs 和 .cljc 文件

  • 类路径字符串 - 将检查类路径中的所有 Clojure 文件

    • 对于 Leiningen 项目:使用lein classpath的输出

    • 对于 deps.edn 项目:使用clojure -Spath的输出

注意:由于 MCP 服务器作为独立进程运行,因此 file 和 configDir 参数都必须为绝对路径。相对路径将无法正常工作。

默认情况下,clj-kondo 会自动在当前目录及其父目录的.clj-kondo目录中查找配置。您可以通过指定configDir参数来指向特定的配置目录,从而覆盖此设置。

有关 clj-kondo 配置的更多信息,请参阅官方文档。

配置

添加到您的 MCP 设置文件(对于 Cline,位于~/Library/Application Support/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json ):

{
  "mcpServers": {
    "clj-kondo": {
      "command": "npx",
      "args": ["clj-kondo-mcp"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

对于手动构建,请使用:

{
  "mcpServers": {
    "clj-kondo": {
      "command": "node",
      "args": ["build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

建造

npm run build

观看模式

npm run dev

Available Tools

1 tool
lint_clojureA

Lint Clojure/ClojureScript/EDN content using clj-kondo

ParametersJSON Schema
NameRequiredDescriptionDefault
configDirNoOptional absolute path to .clj-kondo config directory (e.g. /Users/name/project/.clj-kondo). If not provided, clj-kondo will look for .clj-kondo directory in the current and parent directories.
fileYesCan be: 1) Absolute path to a file, 2) Directory path (will lint all .clj/.cljs/.cljc files recursively), or 3) Classpath string (obtained via `lein classpath` or `clojure -Spath`)
levelNoOptional linting level. By default all lints are errors. Set to "warning" to use warning level instead.

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It specifies what gets processed (Clojure/ClojureScript/EDN content) and the tool used, but doesn't describe output format, error handling, performance characteristics, or what constitutes successful linting. The description adds some value but leaves significant behavioral aspects undocumented.

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, efficient sentence that communicates the essential purpose without any wasted words. It's front-loaded with the core functionality and uses precise terminology. Every element of the description earns its place by adding meaningful information.

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?

Given no annotations, no output schema, and 3 parameters with good schema coverage, the description provides adequate basic context but leaves gaps. It explains what the tool does but doesn't describe what users can expect as results, how to interpret linting output, or any limitations of the clj-kondo approach. For a tool with no structured output documentation, more guidance would be helpful.

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 100% schema description coverage, the baseline is 3. The description adds value by providing context about what 'lint' means in this context and specifying the exact tool being used (clj-kondo), which helps users understand the linting approach and standards being applied beyond what the parameter descriptions provide.

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 tool's purpose with specific verb ('lint') and target resources ('Clojure/ClojureScript/EDN content'), and specifies the implementation method ('using clj-kondo'). It distinguishes itself by naming the exact linter being used, which is helpful even without sibling tools for comparison.

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 provides implied usage context by specifying what types of content can be linted and the tool being used, but offers no explicit guidance on when to use this tool versus alternatives (though no sibling tools exist). It doesn't mention prerequisites, typical workflows, or integration scenarios.

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. 1 tool updatev1.0.0
    • First observedlint_clojure

TDQS

A3.8/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool has a single, clear purpose that is distinct by default.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The naming follows a clear verb_noun pattern (lint_clojure).

Tool Count2/5

A single tool is too few for a server's purpose, as it limits functionality and suggests an incomplete or overly narrow scope. Typically, servers benefit from multiple tools to cover various operations within their domain.

Completeness2/5

The server only provides linting, which is a significant gap for a tool named after clj-kondo, as it might be expected to support other related operations like configuration management or analysis. The surface is severely incomplete for a comprehensive Clojure tooling server.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.
    23
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that monitors shadow-cljs builds and provides real-time build status updates for ClojureScript projects, allowing LLMs to verify build status after making code changes.
    1
    26 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A production-ready Model Context Protocol server that provides comprehensive file system management capabilities for seamless integration with Claude Desktop.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that analyzes application codebases with real-time file watching, providing AI assistants like Claude with deep insights into project structure, code patterns, and architecture.
    MIT