Skip to content

Commit 308974b

Browse files
committed
Initial commit: OpenAPI Context MCP Server
MCP server for querying OpenAPI 3.1 specifications with 8 tools for endpoint discovery, schema retrieval, and API exploration.
1 parent d194f59 commit 308974b

26 files changed

+9871
-0
lines changed

.dockerignore

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Development files
2+
node_modules/
3+
npm-debug.log*
4+
.npm
5+
.nyc_output
6+
coverage/
7+
8+
# Environment files
9+
.env
10+
.env.local
11+
.env.development.local
12+
.env.test.local
13+
.env.production.local
14+
15+
# IDE files
16+
.vscode/
17+
.idea/
18+
*.swp
19+
*.swo
20+
*~
21+
22+
# OS files
23+
.DS_Store
24+
.DS_Store?
25+
._*
26+
.Spotlight-V100
27+
.Trashes
28+
ehthumbs.db
29+
Thumbs.db
30+
31+
# Test files and data
32+
tests/
33+
test/
34+
spec/
35+
*.test.js
36+
*.test.ts
37+
*.spec.js
38+
*.spec.ts
39+
test-data/
40+
data/
41+
logs/
42+
43+
# Documentation and PRPs
44+
README.md
45+
docs/
46+
PRPs/
47+
*.md
48+
!docker-entrypoint.sh
49+
50+
# Git
51+
.git/
52+
.gitignore
53+
.gitattributes
54+
55+
# CI/CD
56+
.github/
57+
.gitlab-ci.yml
58+
.travis.yml
59+
60+
# Docker files (except entrypoint)
61+
Dockerfile*
62+
docker-compose*.yml
63+
.dockerignore
64+
65+
# Examples and scripts
66+
examples/
67+
scripts/
68+
69+
# Config files
70+
.eslintrc*
71+
.prettierrc*
72+
jest.config.*
73+
vitest.config.*
74+
# Keep tsconfig.json for build
75+
# tsconfig*.json
76+
77+
# Build artifacts (these will be copied from the builder stage)
78+
dist/
79+
80+
# OpenAPI specs directory - will be mounted as volume
81+
specs/
82+
openapi/
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build and Push Docker Image
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
tags: [ 'v*' ]
7+
pull_request:
8+
branches: [ main ]
9+
10+
env:
11+
REGISTRY: docker.io
12+
IMAGE_NAME: djankies/openapi-context
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
contents: read
19+
packages: write
20+
21+
steps:
22+
- name: Checkout repository
23+
uses: actions/checkout@v4
24+
25+
- name: Log in to Docker Hub
26+
if: github.event_name != 'pull_request'
27+
uses: docker/login-action@v3
28+
with:
29+
username: ${{ secrets.DOCKER_USERNAME }}
30+
password: ${{ secrets.DOCKER_PASSWORD }}
31+
32+
- name: Extract metadata
33+
id: meta
34+
uses: docker/metadata-action@v5
35+
with:
36+
images: ${{ env.IMAGE_NAME }}
37+
tags: |
38+
type=ref,event=branch
39+
type=ref,event=pr
40+
type=semver,pattern={{version}}
41+
type=semver,pattern={{major}}.{{minor}}
42+
type=raw,value=latest,enable={{is_default_branch}}
43+
44+
- name: Build and push Docker image
45+
uses: docker/build-push-action@v5
46+
with:
47+
context: .
48+
push: ${{ github.event_name != 'pull_request' }}
49+
tags: ${{ steps.meta.outputs.tags }}
50+
labels: ${{ steps.meta.outputs.labels }}

.gitignore

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
# Logs
2+
3+
logs
4+
_.log
5+
npm-debug.log_
6+
yarn-debug.log*
7+
yarn-error.log*
8+
lerna-debug.log*
9+
.pnpm-debug.log*
10+
11+
# Diagnostic reports (https://nodejs.org/api/report.html)
12+
13+
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
14+
15+
# Runtime data
16+
17+
pids
18+
_.pid
19+
_.seed
20+
\*.pid.lock
21+
22+
# Directory for instrumented libs generated by jscoverage/JSCover
23+
24+
lib-cov
25+
26+
# Coverage directory used by tools like istanbul
27+
28+
coverage
29+
\*.lcov
30+
31+
# nyc test coverage
32+
33+
.nyc_output
34+
35+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
36+
37+
.grunt
38+
39+
# Bower dependency directory (https://bower.io/)
40+
41+
bower_components
42+
43+
# node-waf configuration
44+
45+
.lock-wscript
46+
47+
# Compiled binary addons (https://nodejs.org/api/addons.html)
48+
49+
build/Release
50+
51+
# Dependency directories
52+
53+
node_modules/
54+
jspm_packages/
55+
56+
# Snowpack dependency directory (https://snowpack.dev/)
57+
58+
web_modules/
59+
60+
# TypeScript cache
61+
62+
\*.tsbuildinfo
63+
64+
# Optional npm cache directory
65+
66+
.npm
67+
68+
# Optional eslint cache
69+
70+
.eslintcache
71+
72+
# Optional stylelint cache
73+
74+
.stylelintcache
75+
76+
# Microbundle cache
77+
78+
.rpt2_cache/
79+
.rts2_cache_cjs/
80+
.rts2_cache_es/
81+
.rts2_cache_umd/
82+
83+
# Optional REPL history
84+
85+
.node_repl_history
86+
87+
# Output of 'npm pack'
88+
89+
\*.tgz
90+
91+
# Yarn Integrity file
92+
93+
.yarn-integrity
94+
95+
# dotenv environment variable files
96+
97+
.env
98+
.env.development.local
99+
.env.test.local
100+
.env.production.local
101+
.env.local
102+
103+
# parcel-bundler cache (https://parceljs.org/)
104+
105+
.cache
106+
.parcel-cache
107+
108+
# Next.js build output
109+
110+
.next
111+
out
112+
113+
# Nuxt.js build / generate output
114+
115+
.nuxt
116+
dist
117+
118+
# Gatsby files
119+
120+
.cache/
121+
122+
# Comment in the public line in if your project uses Gatsby and not Next.js
123+
124+
# https://nextjs.org/blog/next-9-1#public-directory-support
125+
126+
# public
127+
128+
# vuepress build output
129+
130+
.vuepress/dist
131+
132+
# vuepress v2.x temp and cache directory
133+
134+
.temp
135+
.cache
136+
137+
# Docusaurus cache and generated files
138+
139+
.docusaurus
140+
141+
# Serverless directories
142+
143+
.serverless/
144+
145+
# FuseBox cache
146+
147+
.fusebox/
148+
149+
# DynamoDB Local files
150+
151+
.dynamodb/
152+
153+
# TernJS port file
154+
155+
.tern-port
156+
157+
# Stores VSCode versions used for testing VSCode extensions
158+
159+
.vscode-test
160+
161+
# yarn v2
162+
163+
.yarn/cache
164+
.yarn/unplugged
165+
.yarn/build-state.yml
166+
.yarn/install-state.gz
167+
.pnp.\*
168+
169+
# wrangler project
170+
171+
.dev.vars
172+
.wrangler/
173+
174+
# MCP Server specific ignores
175+
# Build artifacts
176+
dist/
177+
*.tsbuildinfo
178+
179+
# Test artifacts
180+
test-data/
181+
test-specs/
182+
*.test.db
183+
test-*.db
184+
185+
# Coverage reports
186+
coverage/
187+
188+
# Runtime data
189+
data/
190+
logs/
191+
*.log
192+
logs.txt
193+
194+
# Development artifacts
195+
PRPs/
196+
examples/
197+
198+
# Docker artifacts
199+
.dockerignore.bak
200+
201+
# IDE files
202+
.idea/
203+
.claude/
204+
205+
# OS files
206+
.DS_Store
207+
Thumbs.db
208+
209+
# Temporary files
210+
test-*.yaml
211+
specs/
212+
213+
# Environment files
214+
.env.example

.prettierrc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"printWidth": 140,
3+
"singleQuote": false,
4+
"semi": true,
5+
"useTabs": false,
6+
"tabWidth": 2,
7+
"overrides": [
8+
{
9+
"files": ["*.jsonc"],
10+
"options": {
11+
"trailingComma": "none"
12+
}
13+
}
14+
]
15+
}

.vscode/extensions.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"recommendations": [
3+
"esbenp.prettier-vscode",
4+
"dbaeumer.vscode-eslint",
5+
"ms-vscode.vscode-typescript-next",
6+
"bradlc.vscode-tailwindcss",
7+
"ms-vscode.vscode-json",
8+
"redhat.vscode-yaml",
9+
"ms-vscode-remote.remote-containers"
10+
]
11+
}

0 commit comments

Comments
 (0)