@manex/obsidianmcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -0
- package/dist/server.js +28944 -0
- package/package.json +53 -0
package/README.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# ObsidianMCP
|
|
2
|
+
|
|
3
|
+
ObsidianMCP es un servidor Model Context Protocol (MCP) que permite interactuar con tu vault de Obsidian a través de herramientas expuestas como endpoints MCP. Está pensado para integraciones avanzadas, automatización y conexión con agentes de IA.
|
|
4
|
+
|
|
5
|
+
## ¿Qué hace esta herramienta?
|
|
6
|
+
|
|
7
|
+
Permite:
|
|
8
|
+
|
|
9
|
+
- Listar todas las notas de tu vault de Obsidian.
|
|
10
|
+
- Leer el contenido de cualquier nota.
|
|
11
|
+
- Crear nuevas notas.
|
|
12
|
+
- Añadir contenido a notas existentes.
|
|
13
|
+
- Eliminar notas.
|
|
14
|
+
- Buscar notas por nombre o contenido.
|
|
15
|
+
- Comprobar el estado de salud del servidor.
|
|
16
|
+
|
|
17
|
+
Ideal para conectar Obsidian con asistentes inteligentes, automatizaciones o flujos de trabajo personalizados.
|
|
18
|
+
|
|
19
|
+
## Herramientas disponibles (tools)
|
|
20
|
+
|
|
21
|
+
El servidor expone las siguientes tools MCP:
|
|
22
|
+
|
|
23
|
+
| Tool | Descripción | Parámetros |
|
|
24
|
+
| ---------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
25
|
+
| `check_health` | Comprueba el estado de salud del servidor y accesibilidad del vault. | — |
|
|
26
|
+
| `list_notes` | Lista todas las notas markdown del vault con su jerarquía de carpetas. | — |
|
|
27
|
+
| `read_note` | Lee el contenido de una nota específica. | `note`: Ruta de la nota (ej: `Personal/Diario.md`) |
|
|
28
|
+
| `create_note` | Crea una nueva nota. Falla si ya existe. | `note`: Ruta de la nota<br>`content`: Contenido inicial (opcional) |
|
|
29
|
+
| `append_to_note` | Añade contenido al final de una nota existente. | `note`: Ruta de la nota<br>`content`: Texto a añadir |
|
|
30
|
+
| `delete_note` | Elimina una nota. Esta acción es irreversible. | `note`: Ruta de la nota |
|
|
31
|
+
| `search_notes` | Busca notas por nombre o contenido. | `query`: Texto a buscar<br>`searchContent`: Buscar también en contenido (opcional, default: `false`) |
|
|
32
|
+
|
|
33
|
+
## ¿Cómo poner en marcha el servidor MCP?
|
|
34
|
+
|
|
35
|
+
1. Instala las dependencias:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
bun install
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
2. Compila el servidor:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bun run build
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
3. No ejecutes el servidor directamente. Añádelo como servidor MCP en tu cliente compatible (por ejemplo, GitHub Copilot en VSCode, Claude Code, etc.).
|
|
48
|
+
|
|
49
|
+
Por ejemplo, para VSCode, en tu archivo `mcp.json` añade la siguiente configuración:
|
|
50
|
+
|
|
51
|
+
```jsonc
|
|
52
|
+
"servers": {
|
|
53
|
+
"obsidian": {
|
|
54
|
+
"type": "stdio",
|
|
55
|
+
"command": "node",
|
|
56
|
+
"args": ["RUTA/AL/dist/server.js"],
|
|
57
|
+
"env": {
|
|
58
|
+
"OBSIDIAN_VAULT_PATH": "~/ruta/a/tu/vault"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
> **Importante:** La ruta del vault se configura mediante la variable de entorno `OBSIDIAN_VAULT_PATH`. Puedes usar `~` para el directorio home.
|
|
65
|
+
|
|
66
|
+
## Scripts disponibles
|
|
67
|
+
|
|
68
|
+
| Script | Descripción |
|
|
69
|
+
| ------------------- | -------------------------------------- |
|
|
70
|
+
| `bun run dev` | Ejecuta el servidor en modo desarrollo |
|
|
71
|
+
| `bun run build` | Compila el servidor para producción |
|
|
72
|
+
| `bun run start` | Ejecuta el servidor compilado |
|
|
73
|
+
| `bun test` | Ejecuta los tests |
|
|
74
|
+
| `bun test --watch` | Tests en modo watch |
|
|
75
|
+
| `bun run typecheck` | Verifica tipos de TypeScript |
|
|
76
|
+
|
|
77
|
+
## Requisitos
|
|
78
|
+
|
|
79
|
+
- Node.js (recomendado v18+)
|
|
80
|
+
- Bun (https://bun.sh)
|
|
81
|
+
- Un vault de Obsidian
|
|
82
|
+
|
|
83
|
+
## Estructura del proyecto
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
src/
|
|
87
|
+
├── server.ts # Entry point del servidor MCP
|
|
88
|
+
├── config/ # Configuración y validación de env vars
|
|
89
|
+
├── errors/ # Clases de error tipadas
|
|
90
|
+
├── schemas/ # Esquemas Zod para validación de inputs
|
|
91
|
+
├── tools/ # Handlers de las herramientas MCP
|
|
92
|
+
├── types/ # Definiciones de tipos TypeScript
|
|
93
|
+
└── utils/ # Utilidades (filesystem, seguridad de paths)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Créditos
|
|
97
|
+
|
|
98
|
+
Creado con [Bun](https://bun.sh) y [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk).
|