Skip to content

Commit 9cadf9e

Browse files
committed
refactor: rename mcp-server to mcp and update references
- Updated package name from `@devlog/mcp-server` to `@devlog/mcp` across README, package.json, and documentation. - Adjusted test commands and scripts to reflect the new package name. - Created a new README.md for the `@devlog/mcp` package detailing its features and usage. - Added mcp-adapter for flexible storage architecture and integrated it with the MCP server. - Implemented core functionalities for managing devlogs, including creation, updates, and context management. - Added integration tests for the MCP server to ensure functionality. - Introduced AI context management features to enhance task tracking and decision recording. - Updated TypeScript configuration and Vitest setup for the new package.
1 parent 387c01f commit 9cadf9e

File tree

19 files changed

+58
-51
lines changed

19 files changed

+58
-51
lines changed

.github/copilot-instructions.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
This project uses **itself** for development tracking. When working on devlog features, ALWAYS:
2424

2525
### 1. Use Devlog for All Development Work
26-
- Create devlog entries for new features, bugs, or improvements using `@devlog/mcp-server`
26+
- Create devlog entries for new features, bugs, or improvements using `@devlog/mcp`
2727
- Use `find_or_create_devlog` to prevent duplicates
2828
- Track progress with notes and status updates through the MCP server tools
2929

@@ -68,8 +68,9 @@ This ensures the devlog system is continuously tested and improved through real-
6868
## Testing Best Practices
6969

7070
### 1. Prefer Structured Tests Over Temporary Scripts
71-
- **Use Vitest framework**: Create proper test cases instead of ad-hoc scripts in `scripts/`
72-
- **Avoid temp scripts**: Don't create temporary `.mjs` files for testing functionality
71+
- **Use Vitest framework**: Create proper test cases instead of ad-hoc scripts for testing functionality
72+
- **Avoid temp scripts in tracked directories**: Don't create temporary `.mjs` files in `scripts/`, `src/`, or other tracked locations
73+
- **Use `tmp/` for debugging only**: When debugging or quick testing is needed, use the `tmp/` directory (gitignored)
7374
- **Comprehensive test coverage**: Write unit tests, integration tests, and end-to-end tests as needed
7475
- **Maintainable testing**: Tests should be part of the CI/CD pipeline and easily runnable
7576
- **Clean up legacy**: Remove temporary scripts once proper tests are in place
@@ -82,8 +83,14 @@ This ensures the devlog system is continuously tested and improved through real-
8283
- **Descriptive test names**: Tests should clearly describe what they're validating
8384

8485
### 3. Testing Workflow
85-
1. Identify functionality that needs testing
86-
2. Write appropriate test cases using Vitest
87-
3. Ensure tests can be run with standard npm/pnpm scripts
88-
4. Include tests in CI/CD pipeline
89-
5. Remove any temporary scripts that served the same purpose
86+
1. **Primary approach**: Write proper test cases using Vitest framework
87+
2. **For debugging only**: Use `tmp/` directory for temporary debugging scripts (gitignored)
88+
3. **Test organization**: Ensure tests can be run with standard npm/pnpm scripts
89+
4. **Cleanup**: Remove any temporary debugging files from `tmp/` when no longer needed
90+
5. **Structured over ad-hoc**: Always prefer structured tests over temporary scripts
91+
92+
### 4. File Management for Testing
93+
- **Proper tests**: `packages/*/src/__tests__/` directories using Vitest
94+
- **Debugging files**: `tmp/` directory (temporary, gitignored)
95+
- **Never create**: Temporary scripts in `scripts/`, `src/`, or other tracked directories
96+
- **Clean codebase**: Keep the main codebase free of debugging artifacts

.github/workflows/ci.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
- name: Run integration tests
6262
run: pnpm test:integration
6363

64-
mcp-server-test:
64+
mcp-test:
6565
runs-on: ubuntu-latest
6666
needs: test
6767

@@ -92,25 +92,25 @@ jobs:
9292

9393
- name: Verify MCP server binary
9494
run: |
95-
ls -la packages/mcp-server/build/
96-
[ -f "packages/mcp-server/build/index.js" ] || { echo "MCP server binary not found"; exit 1; }
97-
[ -x "packages/mcp-server/build/index.js" ] || chmod +x "packages/mcp-server/build/index.js"
95+
ls -la packages/mcp/build/
96+
[ -f "packages/mcp/build/index.js" ] || { echo "MCP server binary not found"; exit 1; }
97+
[ -x "packages/mcp/build/index.js" ] || chmod +x "packages/mcp/build/index.js"
9898
9999
- name: Test MCP server startup
100100
run: |
101-
cd packages/mcp-server
101+
cd packages/mcp
102102
timeout 10s node build/index.js --help || echo "MCP server help command test completed"
103103
104104
- name: Test MCP server with stdio transport
105105
run: |
106-
cd packages/mcp-server
106+
cd packages/mcp
107107
# Test that the server can start and respond to basic MCP protocol
108108
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test-client", "version": "1.0.0"}}}' | timeout 10s node build/index.js || echo "MCP server protocol test completed"
109109
110110
- name: Test MCP server functionality
111111
run: |
112112
# Run the integration test script that tests actual MCP server functionality
113-
cd packages/mcp-server
113+
cd packages/mcp
114114
node build/test.js
115115
116116
- name: Run MCP protocol compliance tests
@@ -145,7 +145,7 @@ jobs:
145145
- name: Verify build artifacts
146146
run: |
147147
# Check that build artifacts exist
148-
[ -f "packages/mcp-server/build/index.js" ] || { echo "MCP server build failed"; exit 1; }
148+
[ -f "packages/mcp/build/index.js" ] || { echo "MCP server build failed"; exit 1; }
149149
[ -f "packages/types/build/index.js" ] || { echo "Types build failed"; exit 1; }
150150
[ -f "packages/types/build/index.d.ts" ] || { echo "Types declaration build failed"; exit 1; }
151151
[ -f "packages/core/build/index.js" ] || { echo "Core build failed"; exit 1; }
@@ -155,14 +155,14 @@ jobs:
155155
- name: Test package installation
156156
run: |
157157
# Test that packages can be packed
158-
cd packages/mcp-server && npm pack
158+
cd packages/mcp && npm pack
159159
cd ../types && npm pack
160160
cd ../core && npm pack
161161
echo "✅ All packages can be packed successfully!"
162162
163163
- name: Test MCP server can be executed
164164
run: |
165-
cd packages/mcp-server
165+
cd packages/mcp
166166
chmod +x build/index.js
167167
# Test that the server binary is executable
168168
timeout 5s node build/index.js --version || echo "MCP server version check completed"
@@ -200,18 +200,18 @@ jobs:
200200
- name: Test MCP server startup (Unix)
201201
if: runner.os != 'Windows'
202202
run: |
203-
cd packages/mcp-server
203+
cd packages/mcp
204204
timeout 10s node build/index.js --help || echo "MCP server help test completed"
205205
206206
- name: Test MCP server startup (Windows)
207207
if: runner.os == 'Windows'
208208
run: |
209-
cd packages/mcp-server
209+
cd packages/mcp
210210
# Windows doesn't have timeout, use PowerShell
211211
powershell -Command "Start-Process -FilePath 'node' -ArgumentList 'build/index.js', '--help' -Wait -TimeoutSec 10 -ErrorAction SilentlyContinue"
212212
echo "MCP server help test completed"
213213
214214
- name: Run basic functionality test
215215
run: |
216-
cd packages/mcp-server
216+
cd packages/mcp
217217
node build/test.js

.github/workflows/publish.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on:
1616
- minor
1717
- major
1818
packages:
19-
description: 'Packages to publish (comma-separated: mcp-server,types or leave empty for all)'
19+
description: 'Packages to publish (comma-separated: mcp,types or leave empty for all)'
2020
required: false
2121
type: string
2222

@@ -93,7 +93,7 @@ jobs:
9393
if [ -n "${{ github.event.inputs.packages }}" ]; then
9494
PACKAGES="${{ github.event.inputs.packages }}"
9595
else
96-
PACKAGES="mcp-server,types"
96+
PACKAGES="mcp,types"
9797
fi
9898
echo "packages=$PACKAGES" >> $GITHUB_OUTPUT
9999
@@ -103,8 +103,8 @@ jobs:
103103
IFS=',' read -ra PACKAGE_ARRAY <<< "${{ steps.packages.outputs.packages }}"
104104
for pkg in "${PACKAGE_ARRAY[@]}"; do
105105
pkg=$(echo "$pkg" | xargs) # trim whitespace
106-
if [ "$pkg" == "mcp-server" ]; then
107-
cd packages/mcp-server
106+
if [ "$pkg" == "mcp" ]; then
107+
cd packages/mcp
108108
npm version ${{ steps.version.outputs.version }} --no-git-tag-version
109109
cd ../..
110110
elif [ "$pkg" == "types" ]; then
@@ -120,8 +120,8 @@ jobs:
120120
IFS=',' read -ra PACKAGE_ARRAY <<< "${{ steps.packages.outputs.packages }}"
121121
for pkg in "${PACKAGE_ARRAY[@]}"; do
122122
pkg=$(echo "$pkg" | xargs) # trim whitespace
123-
if [ "$pkg" == "mcp-server" ]; then
124-
cd packages/mcp-server
123+
if [ "$pkg" == "mcp" ]; then
124+
cd packages/mcp
125125
npm version ${{ steps.version.outputs.version }} --no-git-tag-version --allow-same-version
126126
cd ../..
127127
elif [ "$pkg" == "types" ]; then
@@ -141,9 +141,9 @@ jobs:
141141
IFS=',' read -ra PACKAGE_ARRAY <<< "${{ steps.packages.outputs.packages }}"
142142
for pkg in "${PACKAGE_ARRAY[@]}"; do
143143
pkg=$(echo "$pkg" | xargs) # trim whitespace
144-
if [ "$pkg" == "mcp-server" ]; then
145-
echo "Publishing @devlog/mcp-server..."
146-
cd packages/mcp-server
144+
if [ "$pkg" == "mcp" ]; then
145+
echo "Publishing @devlog/mcp..."
146+
cd packages/mcp
147147
npm publish --access public
148148
cd ../..
149149
elif [ "$pkg" == "types" ]; then
@@ -175,7 +175,7 @@ jobs:
175175
Published packages: ${{ steps.packages.outputs.packages }}
176176
177177
### Packages
178-
- @devlog/mcp-server@${{ steps.version.outputs.version }}
178+
- @devlog/mcp@${{ steps.version.outputs.version }}
179179
- @devlog/types@${{ steps.version.outputs.version }}
180180
draft: false
181181
prerelease: false

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ jobs:
8383
NEW_VERSION=$(npm version ${{ github.event.inputs.release_type }} --no-git-tag-version)
8484
NEW_VERSION=${NEW_VERSION#v} # Remove 'v' prefix
8585
echo "mcp_new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
86-
NEW_VERSIONS="$NEW_VERSIONS@devlog/mcp-server@$NEW_VERSION "
86+
NEW_VERSIONS="$NEW_VERSIONS@devlog/mcp@$NEW_VERSION "
8787
cd ../..
8888
elif [ "$pkg" == "types" ]; then
8989
cd packages/types
@@ -107,7 +107,7 @@ jobs:
107107
CHANGELOG="$CHANGELOG### Packages Updated\n"
108108
109109
if [[ "${{ steps.bump_versions.outputs.packages }}" == *"mcp-server"* ]]; then
110-
CHANGELOG="$CHANGELOG- **@devlog/mcp-server**: ${{ steps.current_versions.outputs.mcp_version }} → ${{ steps.bump_versions.outputs.mcp_new_version }}\n"
110+
CHANGELOG="$CHANGELOG- **@devlog/mcp**: ${{ steps.current_versions.outputs.mcp_version }} → ${{ steps.bump_versions.outputs.mcp_new_version }}\n"
111111
fi
112112
113113
if [[ "${{ steps.bump_versions.outputs.packages }}" == *"types"* ]]; then
@@ -153,7 +153,7 @@ jobs:
153153
for pkg in "${PACKAGE_ARRAY[@]}"; do
154154
pkg=$(echo "$pkg" | xargs) # trim whitespace
155155
if [ "$pkg" == "mcp-server" ]; then
156-
echo "Publishing @devlog/mcp-server..."
156+
echo "Publishing @devlog/mcp..."
157157
cd packages/mcp-server
158158
npm publish --access public
159159
cd ../..

.vscode/mcp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"command": "pnpm",
99
"args": [
1010
"--filter",
11-
"@devlog/mcp-server",
11+
"@devlog/mcp",
1212
"start"
1313
]
1414
},

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ You can also work directly with individual packages using pnpm filters:
6363

6464
```bash
6565
# Work on the MCP server package
66-
pnpm --filter @devlog/mcp-server build
67-
pnpm --filter @devlog/mcp-server dev
66+
pnpm --filter @devlog/mcp build
67+
pnpm --filter @devlog/mcp dev
6868

6969
# Work on the core package
7070
pnpm --filter @devlog/core build
@@ -75,7 +75,7 @@ pnpm --filter @devlog/types build
7575
pnpm --filter @devlog/types dev
7676

7777
# Install dependencies for a specific package
78-
pnpm --filter @devlog/mcp-server add some-dependency
78+
pnpm --filter @devlog/mcp add some-dependency
7979
```
8080

8181
## Adding New Packages
@@ -101,7 +101,7 @@ When adding a new package to the monorepo:
101101

102102
- `@devlog/types`: Shared TypeScript types and interfaces
103103
- `@devlog/core`: Core devlog management functionality (file system operations, CRUD, etc.)
104-
- `@devlog/mcp-server`: MCP server implementation that wraps the core functionality
104+
- `@devlog/mcp`: MCP server implementation that wraps the core functionality
105105
- Future packages might include:
106106
- `@devlog/cli`: Command-line interface for devlog management
107107
- `@devlog/web`: Web interface for browsing devlogs

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Shared TypeScript types and interfaces used across all packages.
1010
### `@devlog/core`
1111
Core devlog management functionality including file system operations, CRUD operations, filtering, and search. This package provides the foundation that other packages build upon.
1212

13-
### `@devlog/mcp-server`
13+
### `@devlog/mcp`
1414
MCP (Model Context Protocol) server that wraps the core functionality for AI assistant integration.
1515

1616
## Features

docs/guides/TESTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pnpm test:integration
4949
pnpm test
5050

5151
# Run only MCP server tests
52-
pnpm --filter @devlog/mcp-server test
52+
pnpm --filter @devlog/mcp test
5353
```
5454

5555
## 🔧 Manual Testing with MCP Client

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
"private": true,
66
"scripts": {
77
"build": "pnpm -r build",
8-
"start": "pnpm --filter @devlog/mcp-server start",
9-
"dev": "pnpm --filter @devlog/mcp-server dev",
8+
"start": "pnpm --filter @devlog/mcp start",
9+
"dev": "pnpm --filter @devlog/mcp dev",
1010
"test": "pnpm -r test",
1111
"test:watch": "pnpm -r test:watch",
12-
"test:coverage": "pnpm --filter @devlog/mcp-server test -- --coverage",
13-
"test:integration": "pnpm --filter @devlog/mcp-server test:integration",
12+
"test:coverage": "pnpm --filter @devlog/mcp test -- --coverage",
13+
"test:integration": "pnpm --filter @devlog/mcp test:integration",
1414
"test:mcp-compliance": "node scripts/test-mcp-compliance.mjs",
1515
"clean": "pnpm -r clean && rm -f *.tsbuildinfo",
1616
"install-all": "pnpm install",
17-
"build:mcp": "pnpm --filter @devlog/mcp-server build",
17+
"build:mcp": "pnpm --filter @devlog/mcp build",
1818
"build:types": "pnpm --filter @devlog/types build",
1919
"build:core": "pnpm --filter @devlog/core build",
2020
"build:web": "pnpm --filter @devlog/web build",

packages/core/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ Storage is configured through the `DevlogManager` constructor or environment var
121121

122122
This core package is designed to be used by:
123123

124-
- `@devlog/mcp-server` - MCP server for AI assistants
124+
- `@devlog/mcp` - MCP server for AI assistants
125125
- `@devlog/cli` - Command-line interface
126126
- `@devlog/web` - Web interface for browsing devlogs
127127
- Custom applications and scripts

0 commit comments

Comments
 (0)