@cosmowind/ohcard-mcp
Version:
OH卡心理投射工具MCP服务器 - 通过图像探索内心世界,获得洞察和启发
495 lines (356 loc) • 10.4 kB
Markdown
# OH卡心理投射工具MCP服务器 - NPX包开发指南
[](https://badge.fury.io/js/%40cosmowind%2Fohcard-mcp)
[](https://opensource.org/licenses/MIT)
🌟 一个基于MCP(Model Context Protocol)的OH卡心理投射工具服务器,通过npx提供便捷的安装和使用体验。
## ✨ 什么是OH卡?
OH卡(Open Heart Cards)是一套心理投射工具,通过图像来帮助人们探索内心世界、获得洞察和启发。每个人对同一张卡的解读都是独特的,这正是它的魅力所在。
### 🎯 核心功能
- **🎴 随机抽卡**: 从9张精美的OH卡中随机抽取一张
- **🤔 引导问题**: 提供五类专业引导问题帮助深入探索
- **🌈 情感投射**: 通过图像投射内心状态和感受
- **💡 启发思考**: 从新角度看待问题和挑战
- **🔮 直觉连接**: 激活内在智慧和直觉
## 🚀 快速使用
### 在Claude Desktop中使用
1. **配置Claude Desktop**:
在Claude Desktop的配置文件中添加以下配置:
```json
{
"mcpServers": {
"ohcard": {
"command": "npx",
"args": [
"-y",
"@cosmowind/ohcard-mcp"
]
}
}
}
```
2. **重启Claude Desktop**,OH卡MCP服务器将自动启动
3. **开始使用**:
- "介绍一下OH卡"
- "我想抽一张OH卡"
- "给我一些引导问题"
### 直接运行
```bash
# 使用npx直接运行(推荐)
npx @cosmowind/ohcard-mcp
# 或者全局安装后运行
npm install -g @cosmowind/ohcard-mcp
ohcard-mcp
```
## 🛠️ 系统要求
- **Node.js**: 14.0.0 或更高版本
- **npm**: 最新版本
- **网络连接**: 用于下载依赖和查看卡片图像
## 🎮 可用工具
### 1. `what_is_oh_cards`
获取OH卡的详细介绍,了解其原理和价值。
### 2. `get_oh_card_process`
获取完整的OH卡抽取和探索流程指导。
### 3. `draw_oh_card`
抽取一张OH卡。
- **参数**: `intention` (可选) - 你想要探索的问题或意图
### 4. `get_guidance_questions`
获取引导问题帮助深入探索卡牌。
- **参数**: `question_type` (可选) - 问题类型:
- `观察感受`: 帮助观察卡牌并感受第一印象
- `深入探索`: 引导深入挖掘卡牌的细节和含义
- `情境代入`: 让你融入卡牌情境
- `内心连接`: 建立卡牌与内心世界的联系
- `启发行动`: 从卡牌中获得实际的生活指导
- `random`: 随机选择类型
### 5. `get_all_question_types`
查看所有引导问题类型的详细说明。
### 6. `get_all_cards_preview`
预览所有OH卡的图片链接。
## 📦 NPX包开发指南
### 🏗️ 项目结构
创建一个标准的npm包结构:
```
your-npx-package/
├── bin/
│ └── index.js # 主入口文件(带shebang)
├── package.json # 包配置文件
├── README.md # 项目文档
├── LICENSE # 许可证
└── .gitignore # Git忽略文件
```
### 📄 核心文件配置
#### 1. package.json配置
```json
{
"name": "@yourusername/your-package-name",
"version": "1.0.0",
"description": "你的包描述",
"main": "bin/index.js",
"bin": {
"your-command": "bin/index.js"
},
"scripts": {
"start": "node bin/index.js",
"test": "echo \"暂无测试\" && exit 0"
},
"keywords": [
"mcp",
"npx",
"tool"
],
"author": "Your Name",
"license": "MIT",
"engines": {
"node": ">=14.0.0"
},
"dependencies": {},
"files": [
"bin/",
"README.md",
"LICENSE"
]
}
```
#### 2. bin/index.js配置
```javascript
#!/usr/bin/env node
// 必须的shebang行,让系统知道用Node.js执行
const { spawn } = require('child_process');
const path = require('path');
const fs = require('fs');
// 你的应用逻辑
function main() {
console.log('🚀 启动你的npx应用...');
// 应用代码
}
// 启动应用
main();
```
### 🔧 NPX开发流程
#### 第一步:初始化项目
```bash
# 创建项目目录
mkdir your-npx-package
cd your-npx-package
# 初始化npm项目
npm init -y
# 创建bin目录
mkdir bin
# 创建主入口文件
touch bin/index.js
```
#### 第二步:配置package.json
重要字段说明:
- **`bin`**: 定义命令行命令名称和对应的执行文件
- **`main`**: 包的主入口文件
- **`files`**: 指定发布时包含的文件/目录
- **`engines`**: 指定Node.js版本要求
- **`keywords`**: 帮助用户搜索到你的包
#### 第三步:编写应用代码
```javascript
#!/usr/bin/env node
// bin/index.js 示例
const packageInfo = require('../package.json');
function showHelp() {
console.log(`
${packageInfo.name} v${packageInfo.version}
用法:
npx ${packageInfo.name}
选项:
--help, -h 显示帮助信息
--version, -v 显示版本信息
`);
}
function main() {
const args = process.argv.slice(2);
if (args.includes('--help') || args.includes('-h')) {
showHelp();
return;
}
if (args.includes('--version') || args.includes('-v')) {
console.log(packageInfo.version);
return;
}
// 你的主要逻辑
console.log('🚀 应用正在运行...');
}
main();
```
### 📋 本地测试方法
#### 方法1:npm link测试
```bash
# 在项目目录中
npm link
# 测试命令(假设命令名为your-command)
your-command
# 测试完成后清理
npm unlink
```
#### 方法2:npm pack测试
```bash
# 打包项目
npm pack
# 全局安装测试包
npm install -g ./your-package-1.0.0.tgz
# 测试命令
your-command
# 清理
npm uninstall -g your-package
```
#### 方法3:直接运行测试
```bash
# 直接运行主文件
node bin/index.js
# 或使用npm script
npm start
```
### 🚀 发布到npm流程
#### 第一步:准备发布
```bash
# 检查package.json配置
npm pkg fix
# 检查将要发布的文件
npm pack --dry-run
# 实际打包查看
npm pack
```
#### 第二步:npm账户设置
```bash
# 注册npm账户(如果没有)
npm adduser
# 或登录现有账户
npm login
# 验证登录状态
npm whoami
```
#### 第三步:发布前检查
```bash
# 检查npm注册表(必须是官方源)
npm config get registry
# 应该显示: https://registry.npmjs.org/
# 如果不是官方源,切换到官方源
npm config set registry https://registry.npmjs.org/
```
#### 第四步:发布包
```bash
# 发布公开包(如果使用作用域名称)
npm publish --access public
# 发布普通包
npm publish
# 发布成功后验证
npm view your-package-name
```
### 🔄 版本管理
#### 更新版本号
```bash
# 补丁版本更新 (1.0.0 -> 1.0.1)
npm version patch
# 小版本更新 (1.0.0 -> 1.1.0)
npm version minor
# 大版本更新 (1.0.0 -> 2.0.0)
npm version major
# 预发布版本 (1.0.0 -> 1.0.1-0)
npm version prerelease
```
#### 发布新版本
```bash
# 更新版本号并发布
npm version patch && npm publish --access public
```
### 🐛 故障排除
#### ❌ 问题1:npm发布认证失败
```
npm error need auth This command requires you to be logged in
```
**解决方案**:
```bash
# 检查当前注册表
npm config get registry
# 切换到官方npm注册表
npm config set registry https://registry.npmjs.org/
# 重新登录
npm login
# 发布
npm publish --access public
```
#### ❌ 问题2:包名冲突
```
npm error 403 Forbidden - PUT https://registry.npmjs.org/package-name
```
**解决方案**:
- 使用作用域名称:`@yourusername/package-name`
- 更换包名
- 检查npm官网是否已存在同名包
#### ❌ 问题3:shebang权限问题
**解决方案**:
```bash
# 确保bin文件有shebang行
#!/usr/bin/env node
# 在Unix系统中设置执行权限
chmod +x bin/index.js
```
#### ❌ 问题4:npx运行失败
**解决方案**:
```bash
# 检查Node.js版本
node --version
# 清除npx缓存
npx --version
npx clear-npx-cache
# 强制重新安装
npx --ignore-existing your-package-name
```
### 📊 发布后的管理
#### 查看包信息
```bash
# 查看包基本信息
npm view your-package-name
# 查看版本历史
npm view your-package-name versions --json
# 查看下载统计
npm view your-package-name
# 查看依赖信息
npm view your-package-name dependencies
```
#### 撤销发布
```bash
# 撤销特定版本(72小时内)
npm unpublish your-package-name@1.0.0
# 撤销整个包(谨慎使用)
npm unpublish your-package-name --force
```
#### 标签管理
```bash
# 添加标签
npm dist-tag add your-package-name@1.0.0 beta
# 查看标签
npm dist-tag ls your-package-name
# 删除标签
npm dist-tag rm your-package-name beta
```
## 💡 最佳实践
### 📝 代码规范
1. **shebang必须**: `#!/usr/bin/env node`
2. **错误处理**: 妥善处理异常情况
3. **帮助信息**: 提供`--help`选项
4. **版本信息**: 提供`--version`选项
### 📦 包配置
1. **keywords优化**: 便于用户搜索
2. **files字段**: 只包含必要文件
3. **engines限制**: 明确Node.js版本要求
4. **license明确**: 选择合适的开源许可证
### 🚀 发布策略
1. **语义化版本**: 遵循semver规范
2. **changelog维护**: 记录版本变更
3. **测试充分**: 本地测试后再发布
4. **文档完善**: README详细说明使用方法
## 📄 许可证
本项目采用 [MIT 许可证](LICENSE)。
## 🤝 贡献
欢迎提交Issues和Pull Requests!
## 📞 联系方式
- **作者**: CosmoWind
- **npm包**: https://www.npmjs.com/package/@cosmowind/ohcard-mcp
- **主页**: https://github.com/cosmowind/ohcard-mcp
- **Issues**: https://github.com/cosmowind/ohcard-mcp/issues
---
💫 **愿这份npx开发指南帮助你创建出色的命令行工具!** ✨