艾肯开发工具mcp
为Aiken智能合约开发实现模型上下文协议(MCP)的Node.js服务器。
特性
- Aiken CLI集成(构建、测试、格式化、文档)
- 蓝图分析和集成包生成
- 基于语义搜索的知识库管理
- Evolution SDK和Lucid的代码生成
- 工具发现和动态配置
- 审计日志记录和策略执行
发展
- 安装deps:
npm install - 构建:
npm run build - 运行(stdio MCP服务器):
npm start
与政策和审计一起运行
- 服务器运行在 只读 默认情况下,模式是安全的。使用
--no-readonly禁用只读模式--allow-tools明确允许特定工具(例如。,--allow-tools aiken_knowledge_add). - 工具清单提供在
mcp-tools.json以及管理员策略文件mcp-policy.json可用于限制工具。工具调用记录到audit.log(敏感字段已被编辑)。 - 使用
npx aiken-devtools-mcp --allow-tools aiken_knowledge_add使用所选破坏性工具的显式分配列表运行服务器。
API
工具
Aiken CLI工具
- aiken_版本
- 返回已安装的 aiken CLI版本 - 错误如果 aiken 未打开 PATH - 输入:无 - 只读
- aiken_检查
- 跑 aiken check 验证项目 - 输入: projectDir (字符串,可选) - 只读
- aiken_建筑
- 跑 aiken build 编译项目 - 输入: projectDir (字符串,可选), extraArgs (字符串,可选) - 将工件写入磁盘
- aiken_test
- 跑 aiken test 执行测试套件 - 输入: projectDir (字符串,可选), extraArgs (字符串,可选) - 只读
- aiken_fmt
- 跑 aiken fmt 格式化源代码 - 输入: projectDir (字符串,可选), checkOnly (布尔值,可选), extraArgs (字符串,可选) - 修改源文件
- aiken_docs
- 跑 aiken docs 生成文档 - 输入: projectDir (字符串,可选), extraArgs (字符串,可选) - 写入文档文件
- aiken_new
- 创建新的Aiken项目 - 输入: name (字符串), projectDir (字符串,可选), template (字符串,可选) - 创建项目目录和文件
蓝图工具
- aiken_blueprint_可打印
- 阅读蓝图序言和基本计数 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选) - 只读
- aiken_blueprint_list_validators
- 列出带有元数据的验证器 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), includeCompiledCode (布尔值,可选) - 只读
- aiken_blueprint_get_验证器
- 返回单个验证器条目 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), title (字符串,可选), index (数字,可选) - 只读
- aiken_蓝图_灰烬
- 计算验证器支付凭证哈希 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), module (字符串), validator (字符串), timeoutMs (数字,可选) - 只读
- aiken_blueprint_地址
- 计算支出验证器地址 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), module (字符串), validator (字符串), timeoutMs (数字,可选) - 只读
- aiken_blueprint_政策
- 计算铸造策略ID - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), module (字符串), validator (字符串), timeoutMs (数字,可选) - 只读
- aiken_blueprint_convert
- 生成cardano cli脚本JSON - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), module (字符串), validator (字符串), timeoutMs (数字,可选) - 只读
- aiken_blueprint_export_cardano_cli
- 导出cardano cli脚本,并可选择写入文件 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), module (字符串), validator (字符串), outputPath (字符串,可选), timeoutMs (数字,可选) - 可选择写入文件
- aiken_蓝图_集成_捆绑
- 计算验证器的哈希+地址+策略ID包 - 输入:具有项目/模块/验证器详细信息的复杂对象,可选代码生成标志 - 只读
- aiken_蓝图_集成_捆绑_所有
- 计算所有验证器的集成包 - 输入:具有蓝图详细信息和每个验证器选项的复杂对象 - 可选择写入文件
- aiken_blueprint_集成_捆绑_标题
- 为蓝图标题选择的验证器计算包 - 输入: projectDir, blueprintPath, title,以及可选的生成标志 - 只读
- aiken_丝印_应用
- 应用带有参数的蓝图 - 输入: projectDir (字符串,可选), blueprintPath (字符串,可选), module (字符串), validator (字符串), cborHex (字符串), out (字符串,可选), timeoutMs (数字,可选) - 写入输出蓝图
知识工具
- aiken_知识_同步
- 将知识源克隆/更新到缓存中 - 输入: sources (string\[\],可选), ref (字符串,可选), timeoutMs (数字,可选), compact (布尔值,可选) - 下载和缓存存储库
- 爱肯知识搜索
- 跨项目和缓存知识进行搜索 - 输入: query (字符串), scope (字符串,可选), maxResults (数字,可选), maxFiles (数字,可选), fileExtensions (string\[\],可选) - 只读
- aiken_知识列表
- 列出已知的知识来源 - 输入: ids (string\[\],可选), category (字符串,可选), query (字符串,可选), include (字符串,可选) - 只读
- aiken_知识_添加
- 添加新的知识源 - 输入: remoteUrl (字符串),加上可选的元数据字段 - 修改知识注册表
- aiken_知识_阅读_文件
- 从工作区或缓存的知识中读取文件 - 输入: path (字符串), startLine (数字,可选), endLine (数字,可选), maxChars (数字,可选) - 只读
- 爱肯知识_孕育
- 将知识源摄入向量库 - 输入:具有URL和处理选项的复杂对象 - 修改矢量存储
- aiken_知识_肥胖_摄入
- 吸收多种知识来源 - 输入: urls (string\[\],可选), gitUrls (string\[\],可选),加上处理选项 - 修改矢量存储
- 爱肯知识_职位列表
- 列出拟议的知识来源 - 输入: query (字符串,可选), limit (数字,可选) - 只读
- 爱肯_知识_批准
- 批准并采纳拟议来源 - 输入: id (字符串), commit (布尔值,可选), archive (布尔值,可选), category (字符串,可选) - 修改知识注册表和向量存储
- 爱肯知识索引
- 用于搜索的索引向量存储 - 输入: proposalId (字符串,可选), sourceId (字符串,可选), collection (字符串,可选), chunkSize (数字,可选), overlap (数字,可选) - 修改矢量存储
Codegen工具
- 进化论
- 为Lucid Evolution生成TypeScript代码段 - 输入: projectDir (字符串,可选), module (字符串), validator (字符串),加上输出选项 - 只读
- aiken_codegen_进化_sdk
- 为Evolution SDK生成TypeScript代码段(首选) - 输入: projectDir (字符串,可选), module (字符串), validator (字符串), networkId (数字), exportName (字符串,可选),加上选项 - 只读
发现工具
- aiken_server_manifest
- 返回服务器的清单 - 输入:无 - 只读
- aiken_tools目录
- 返回分类工具列表 - 输入:无 - 只读
- aiken_tool_search
- 在本地清单中搜索工具 - 输入: query (字符串), maxResults (数字,可选) - 只读
工具集工具
- aiken_toolsets_able
- 在运行时启用/禁用工具集 - 输入: toolsets (字符串\[\]), enable (布尔值) - 修改服务器配置
- aiken_toolsets_list
- 列出可用/活动的工具集 - 输入:无 - 只读
工具注释(MCP提示)
此服务器设置 MCP工具注释 在每个工具上,客户端可以区分只读工具和可写工具,并了解操作特性。
| 工具类别 | 只读 | 临时 | 破坏性 | 注释 |
|---|---|---|---|---|
| CLI工具 | 最只读 | 变化 | 一些修改文件 | aiken_fmt 修改源 |
| 蓝图分析 | 是 | 是 | 否 | 纯分析 |
| 蓝图生成 | 大多数 | 是 | 一些写入文件 | 导出工具写入文件 |
| 知识搜索 | 是 | 是 | 否 | 纯搜索 |
| 知识管理 | 否 | 否 | 是 | 修改缓存/注册表 |
| 代码生成 | 是 | 是 | 否 | 纯世代 |
| 发现 | 是 | 是 | 否 | 纯粹的发现 |
| 工具集 | 否 | 是 | 否 | 运行时配置 |
MCP提示
aiken_validator_template:提供编写Aiken验证器的基本模板aiken_development_tips:为Aiken智能合约开发提供提示
MCP资源
mcp_tools_manifest:所有可用工具的JSON清单
工具发现和配置
工具发现
- 跑
aiken_tools_catalog获取分类的工具列表(服务器还公开mcp-tools.json通过资源)。主持人可以使用它来展示按功能区域(项目、蓝图、知识、代码生成、发现)分组的工具。 - 使用CLI
scripts/tool-search.js(或node scripts/tool-search.js)快速搜索本地清单。MCP工具aiken_tool_search通过MCP调用提供相同的搜索功能。
工具集和动态配置
- 使用启动服务器
--toolsets以启用命名工具集(例如。,--toolsets project,knowledge).您还可以设置AIKEN_TOOLSETSenv-var具有相同的效果。 - 启用
--dynamic-toolsets以允许运行时启用/禁用工具集。启用后,使用aiken_toolsets_enable切换工具集和aiken_toolsets_list检查可用/活动集。 - 锁定模式(
--lockdown)禁用网络相关工具以减少敏感环境中的暴露。内部人模式(--insiders)启用默认隐藏的实验工具。
知识管理
服务器为Aiken开发维护了一个全面的知识库:
内置源:
- 艾肯标准图书馆:核心集合、加密货币、数学和卡尔达诺特定的实用程序
- 艾肯前奏:内置类型(Bool、Int、ByteArray、List、Option)
- Aiken文件:基础知识、语言导览、教程、UPLC
- Evolution SDK:完整的SDK文档和源代码
知识工作流程:
aiken_knowledge_sync-将源克隆/更新到本地缓存aiken_knowledge_ingest-将源处理到矢量存储中aiken_knowledge_search-跨所有知识的语义搜索aiken_knowledge_add-添加自定义知识源
搜索范围:
project-当前工作区文件stdlib*-Aiken标准库变体prelude-核心语言类型site*-正式文件evolution*-Evolution SDK资源all-一切
MCP提示
aiken_validator_template:提供编写Aiken验证器的基本模板aiken_development_tips:为Aiken智能合约开发提供提示
MCP资源
mcp_tools_manifest:所有可用工具的JSON清单
推荐工作流程
- 构建工件:运行
aiken_build. - 检查蓝图:使用
aiken_blueprint_list_validators(读取模块/验证器)或aiken_blueprint_get_validator(检查一个条目)。 - 集成输出:使用
aiken_blueprint_integration_bundle(单),aiken_blueprint_integration_bundle_by_title(按蓝图标题),或aiken_blueprint_integration_bundle_all(所有验证器)。 - 应用程序代码生成器:使用
aiken_codegen_evolution_sdk(首选)或aiken_codegen_lucid_evolution.
例子
集成包(带Evolution SDK片段)
请求(工具输入):
{
"projectDir": ".",
"module": "my_project.validators",
"validator": "escrow",
"includeEvolutionSdkSnippet": true,
"evolutionNetworkId": 0,
"evolutionOutputPath": "artifacts/escrow.evolution.ts"
}返回结构化输出,包括 hash, address, policyId,以及 evolutionSdkSnippetTs.
集成捆绑包(按标题)
请求(工具输入):
{
"projectDir": ".",
"blueprintPath": "plutus.json",
"title": "my_project.validators.escrow",
"includeEvolutionSdkSnippet": true
}退货 bundle 结构与 aiken_blueprint_integration_bundle.
集成包(所有验证器)
请求(工具输入):
{
"projectDir": ".",
"blueprintPath": "plutus.json",
"includeEvolutionSdkSnippet": true,
"evolutionOutputDir": "artifacts/snippets"
}退货 results[] 包含每个验证器的条目 hash, address, policyId,加上可选 evolutionSdkSnippetTs 和 writtenEvolutionSnippetFile.
知识搜索(标准库/前奏/进化sdk)
请求(工具输入):
{
"query": "ScriptHash.fromScript",
"scope": "evolution-sdk"
}从缓存的知识库中返回匹配的文件路径+行代码段。
Codegen(首选,Evolution SDK)
请求(工具输入):
{
"projectDir": ".",
"module": "my_project.validators",
"validator": "escrow",
"networkId": 0
}退货 snippetTs 并解析 cardanoCliScript.
______________________________________________________________________
导入Awesome Aiken(自动)
我们添加了一个小型导入器脚本,可以从Awesome Aiken README中获取精选列表,并将链接转化为知识源(文档、库、示例)。
- 运行:
npm run import:awesome - 功能:下载
https://raw.githubusercontent.com/aiken-lang/awesome-aiken/main/README.md,解析链接,并发出src/knowledge/awesome/awesomeAiken.ts(生成)。 - 运行后,使用以下命令更新存储库的缓存:
npx mcp run aiken_knowledge_sync(或使用MCP工具UI)克隆或更新新添加的源。
