Skip to content

Commit fb87568

Browse files
author
Dev Agent Amelia
committed
Initial commit — v0.3.8
0 parents  commit fb87568

47 files changed

Lines changed: 11660 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# MCP Dataverse Configuration
2+
# Set these environment variables (or use config.json for local dev)
3+
4+
# Required: your Dataverse / Power Platform environment URL
5+
DATAVERSE_ENV_URL=https://yourorg.crm.dynamics.com
6+
7+
# Optional: path to a config.json file (overrides DATAVERSE_ENV_URL)
8+
# MCP_CONFIG_PATH=/home/you/.mcp-dataverse/config.json
9+
10+
# Tuning (optional)
11+
# REQUEST_TIMEOUT_MS=30000
12+
# MAX_RETRIES=3
13+
14+
# ── Authentication ────────────────────────────────────────────────────────────
15+
# No credentials are required here.
16+
# Authentication uses the Microsoft Device Code Flow (MSAL):
17+
# 1. Run: npx mcp-dataverse install (or npx mcp-dataverse-auth)
18+
# 2. Open the URL shown in the terminal and enter the displayed code
19+
# 3. Sign in with your Microsoft / Power Platform account
20+
# The token is cached in ~/.mcp-dataverse/msal-cache.json and reused silently.

.github/workflows/ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
jobs:
10+
validate:
11+
name: Validate package
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
- uses: actions/setup-node@v4
16+
with:
17+
node-version: 20
18+
cache: npm
19+
- run: npm ci --ignore-scripts
20+
- name: Validate server.json
21+
run: node -e "const s = require('./server.json'); console.log('server.json OK:', s.name, s.version)"
22+
- name: Check dist entrypoint
23+
run: node --check dist/server.js && echo "dist/server.js syntax OK"
24+

.github/workflows/pages.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches: [master]
6+
paths:
7+
- 'docs/**'
8+
- 'CAPABILITIES.md'
9+
- 'CHANGELOG.md'
10+
- 'assets/**'
11+
workflow_dispatch:
12+
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
concurrency:
19+
group: pages
20+
cancel-in-progress: false
21+
22+
jobs:
23+
build:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
29+
- name: Setup Pages
30+
uses: actions/configure-pages@v5
31+
32+
- name: Build with Jekyll
33+
uses: actions/jekyll-build-pages@v1
34+
with:
35+
source: ./docs
36+
destination: ./_site
37+
38+
- name: Upload artifact
39+
uses: actions/upload-pages-artifact@v3
40+
41+
deploy:
42+
environment:
43+
name: github-pages
44+
url: ${{ steps.deployment.outputs.page_url }}
45+
runs-on: ubuntu-latest
46+
needs: build
47+
steps:
48+
- name: Deploy to GitHub Pages
49+
id: deployment
50+
uses: actions/deploy-pages@v4

.github/workflows/publish.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Publish
2+
3+
on:
4+
push:
5+
tags: ["v*"] # Trigger on version tags: v0.2.1, v1.0.0, etc.
6+
7+
jobs:
8+
publish:
9+
name: Publish to npm + MCP Registry
10+
runs-on: ubuntu-latest
11+
permissions:
12+
id-token: write # Required for GitHub OIDC auth to MCP Registry
13+
contents: read
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
19+
- name: Setup Node.js
20+
uses: actions/setup-node@v4
21+
with:
22+
node-version: "20"
23+
cache: "npm"
24+
registry-url: "https://registry.npmjs.org"
25+
26+
- name: Install dependencies
27+
run: npm ci --ignore-scripts
28+
29+
- name: Extract version from tag
30+
run: |
31+
VERSION=${GITHUB_REF#refs/tags/v}
32+
echo "VERSION=$VERSION" >> $GITHUB_ENV
33+
34+
- name: Sync server.json to tag version
35+
run: |
36+
jq --arg v "$VERSION" '.version = $v | .packages[0].version = $v' server.json > server.tmp && mv server.tmp server.json
37+
38+
- name: Publish to npm
39+
run: npm publish --access public --provenance
40+
env:
41+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
42+
43+
- name: Install mcp-publisher
44+
run: |
45+
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
46+
47+
- name: Authenticate to MCP Registry (OIDC)
48+
run: ./mcp-publisher login github-oidc
49+
50+
- name: Publish to MCP Registry
51+
run: ./mcp-publisher publish

.gitignore

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
node_modules/
2+
.venv/
3+
site/
4+
.env
5+
config.json
6+
.msal-cache.json
7+
*.log
8+
.DS_Store
9+
coverage/
10+
11+
12+
# Test artifacts
13+
test-output.txt
14+
*.local
15+
16+
# Windows
17+
Thumbs.db
18+
Desktop.ini
19+
20+
# Source code (kept private — published via npm only)
21+
src/
22+
tests/
23+
scripts/
24+
mcp-template/
25+
autoparc/
26+
assets/
27+
debug/
28+
!assets/logo.webp
29+
30+
# Private planning & internal artifacts (security/privacy)
31+
_bmad/
32+
_bmad-output/
33+
.codex/
34+
project.md
35+
refine.md
36+
refinev2.md
37+
refinev3.md
38+
PUBLISHING.md
39+
ROADMAP-PERSONAL.md
40+
41+
# Internal IDE/workflow configs
42+
.vscode/mcp.json
43+
.github/agents/
44+
45+
# Editor personal settings
46+
.vscode/settings.json
47+
.vscode/launch.json
48+
49+
# MCP Registry auth tokens (written by mcp-publisher CLI)
50+
.mcpregistry_github_token
51+
.mcpregistry_registry_token
52+
mcp-publisher.exe

.husky/pre-commit

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
npx lint-staged
2+
node scripts/check-file-size.js

0 commit comments

Comments
 (0)