Skip to content

Add GitHub API token injection tutorial#64

Merged
r33drichards merged 1 commit into
mainfrom
tutorials/github-api-token-injection
Feb 28, 2026
Merged

Add GitHub API token injection tutorial#64
r33drichards merged 1 commit into
mainfrom
tutorials/github-api-token-injection

Conversation

@r33drichards

Copy link
Copy Markdown
Owner

Summary

  • Add tutorials/ directory with a guide on configuring docker-compose.yml to inject GitHub tokens via --fetch-header for authenticated API access from the JS sandbox
  • Update docker-compose.yml to include the header injection rule using a GITHUB_TOKEN environment variable
  • Tutorial covers: CLI flag config, .env file usage, testing with curl, JSON config file alternative, and security notes

Test plan

  • docker compose up --build -d starts successfully with GITHUB_TOKEN set
  • docker compose logs mcp-js | grep "header injection" shows 1 rule loaded
  • Fetching api.github.com from the sandbox returns authenticated results
  • Without GITHUB_TOKEN set, the compose still starts (empty bearer token, GitHub returns 401)

🤖 Generated with Claude Code

Add a tutorials directory with a guide on configuring docker-compose
to inject GitHub tokens via --fetch-header for authenticated API access
from the JS sandbox. Also update docker-compose.yml to include the
header injection rule using a GITHUB_TOKEN env var.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

MCP-V8 Load Test Benchmark Report

Comparison of single-node vs 3-node cluster at various request rates.

Results

Topology Target Rate Actual Iter/s HTTP Req/s Exec Avg (ms) Exec p95 (ms) Exec p99 (ms) Success % Dropped Max VUs
cluster-stateful 100/s 99.8 99.8 30.77 69.59 148.79 100% 11 21
cluster-stateful 200/s 136.4 136.4 1352.98 4160.51 4231.15 100% 3271 200
cluster-stateless 1000/s 999.9 999.9 5.95 6.52 13.53 100% 0 100
cluster-stateless 100/s 100 100 5.16 5.88 6.96 100% 0 10
cluster-stateless 200/s 200 200 5.17 5.92 8.19 100% 0 20
cluster-stateless 500/s 500 500 5.54 6.11 18.46 100% 0 50
single-stateful 100/s 21.8 21.8 4350.94 5079.46 5268 100% 4602 100
single-stateful 200/s 23.3 23.3 7934.6 9218.95 9338 100% 10409 200
single-stateless 1000/s 976.6 976.6 235.62 656.17 703.02 100% 1088 694
single-stateless 100/s 100 100 10.39 15.12 22.28 100% 0 10
single-stateless 200/s 200 200 10.65 16.22 23.82 100% 0 20
single-stateless 500/s 499.2 499.2 14.68 27.5 83.01 100% 43 70

P95 Latency

Topology Rate P95 (ms)
cluster-stateful 100/s 69.59 ██████████████
cluster-stateful 200/s 4160.51 ███████████████████████████
cluster-stateless 100/s 5.88 ██████
cluster-stateless 200/s 5.92 ██████
cluster-stateless 500/s 6.11 ██████
cluster-stateless 1000/s 6.52 ██████
single-stateful 100/s 5079.46 ████████████████████████████
single-stateful 200/s 9218.95 ██████████████████████████████
single-stateless 100/s 15.12 █████████
single-stateless 200/s 16.22 █████████
single-stateless 500/s 27.5 ███████████
single-stateless 1000/s 656.17 █████████████████████

Notes

  • Target Rate: The configured constant-arrival-rate (requests/second k6 attempts)
  • Actual Iter/s: Achieved iterations per second (each iteration = 1 POST /api/exec)
  • HTTP Req/s: Total HTTP requests per second (1 per iteration)
  • Dropped: Iterations k6 couldn't schedule because VUs were exhausted (indicates server saturation)
  • Topology: single = 1 MCP-V8 node; cluster = 3 MCP-V8 nodes with Raft

@r33drichards r33drichards merged commit 32e132c into main Feb 28, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant