Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
cafe97c
Add initial README.md for MCP Server: OpenAPI to SDK
x-or-b Oct 9, 2025
ab83919
Add OpenAPItoSDKAppSettings class and update README.md for clarity
x-or-b Oct 9, 2025
bc44121
Refactor namespace and class names for consistency in OpenAPI to SDK …
x-or-b Oct 9, 2025
394b07a
Add ISdkGenerationPrompt interface and SdkGenerationPrompt class for …
x-or-b Oct 9, 2025
ce38dc4
openApi 파라미터를 openApiDocUrl로 변경
x-or-b Oct 9, 2025
5e8eded
Initialize McpSamples.OpenApiToSdk.HybridApp project with essential f…
x-or-b Oct 21, 2025
6bd1c77
Update solution file to include project configurations for McpSamples…
x-or-b Oct 24, 2025
2523956
Merge pull request #103 from CDP1-Team4/feat/73-auto-register-components
x-or-b Nov 2, 2025
57129e6
Add configuration files for HTTP and STDIO servers in VSCode
x-or-b Nov 2, 2025
16f9249
Change http port number 5252 to 5288
x-or-b Nov 2, 2025
5355f9e
5202
x-or-b Nov 2, 2025
c2d408a
local settings
x-or-b Nov 2, 2025
77cd276
Refactor Program.cs and add OpenApiToSdkTool class
x-or-b Nov 2, 2025
566a01f
Download openapi spec
x-or-b Nov 2, 2025
1942214
Merge branch 'prompt' into feat/46-download-openapi-spec
x-or-b Nov 3, 2025
152a09d
Add Kiota SDK generation functionality and related methods
x-or-b Nov 3, 2025
50d97c6
Add OpenAPI specification handling and SDK generation features
x-or-b Nov 3, 2025
aa07d5a
Refactor SdkGenerationPrompt to standardize prompt name for SDK gener…
x-or-b Nov 3, 2025
f8095d2
Merge pull request #119 from CDP1-Team4/feat/78-local-config
x-or-b Nov 4, 2025
e3d6270
Merge pull request #36 from CDP1-Team4/prompt
x-or-b Nov 4, 2025
eda47bf
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Nov 7, 2025
802736a
Refactor server configuration and enhance OpenAPI service registratio…
x-or-b Nov 10, 2025
b61b715
Merge branch 'openapi-to-sdk' into feat/48-execute-kiota-cli
x-or-b Nov 10, 2025
c0fa6f2
Merge pull request #148 from CDP1-Team4/feat/48-execute-kiota-cli
x-or-b Nov 10, 2025
ac64d2a
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Nov 10, 2025
3624873
Refactor OpenApiToSdkTool to return structured results; update .gitig…
x-or-b Nov 10, 2025
1b32d10
Update server URL in mcp.http.local.json to use localhost for local d…
x-or-b Nov 10, 2025
8ba0612
Cleaned up comments in the code.
x-or-b Nov 10, 2025
11747fd
Add Dockerfiles, configuration files, and infrastructure templates fo…
x-or-b Nov 10, 2025
17d9c98
Refactor DownloadOpenApiSpecAsync method to simplify error handling a…
x-or-b Nov 11, 2025
fe92a92
Merge pull request #149 from CDP1-Team4/feat/51-return-uri
x-or-b Nov 16, 2025
5dfe5fc
Enhance OpenApiToSdkTool for improved SDK generation and path handling
x-or-b Nov 16, 2025
8b8a1cc
Update output directory description and comments for clarity in OpenA…
x-or-b Nov 16, 2025
eab28b7
Merge pull request #156 from CDP1-Team4/fix/51-return-url
x-or-b Nov 16, 2025
54a3793
Enhance SDK generation prompts and options in OpenApiToSdkTool
x-or-b Nov 16, 2025
02bad95
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Nov 16, 2025
32daaa5
Refactor Dockerfile and SdkGenerationPrompt for improved clarity and …
x-or-b Nov 17, 2025
acd08f7
Merge pull request #157 from CDP1-Team4/fix/54-pre-defined-prompt
x-or-b Nov 17, 2025
5930988
Rename folder and file from APItoSDK to ApiToSdk
x-or-b Nov 17, 2025
1af6183
Change Readme file
x-or-b Nov 17, 2025
45f43cb
revise dockerfile
x-or-b Nov 17, 2025
64de242
Refactor Dockerfile to improve directory creation and permission sett…
x-or-b Nov 18, 2025
d2b87c1
Merge pull request #166 from CDP1-Team4/feat/82-dockerfile
x-or-b Nov 18, 2025
c75adf0
Refactor Dockerfile to streamline directory creation and permission s…
x-or-b Nov 18, 2025
52ec0d9
Refactor Dockerfile and OpenApiToSdkTool to streamline directory crea…
x-or-b Nov 22, 2025
a9a2b8b
Refactor Dockerfile and README to streamline volume mounting and comm…
x-or-b Nov 22, 2025
3db252c
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Nov 22, 2025
2e9cd84
Merge pull request #173 from CDP1-Team4/feat/82-dockerfile
x-or-b Nov 22, 2025
ef37069
Enhance OpenAPI specification handling by updating descriptions and a…
x-or-b Nov 24, 2025
e699a86
Enhance Dockerfile and configuration files for OpenAPI to SDK integra…
x-or-b Nov 25, 2025
91156df
Refactor comments and formatting in Bicep files for clarity and consi…
x-or-b Nov 25, 2025
8b0228d
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Nov 26, 2025
168c23f
Refactor Dockerfiles, enhance OpenApiService and SdkGenerationPrompt …
x-or-b Dec 1, 2025
0f8da73
Merge pull request #189 from CDP1-Team4/fix/54-predefined-prompt
x-or-b Dec 1, 2025
8ebdab2
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Dec 1, 2025
a03c6ee
Update .gitignore to include test directory and remove DownloadResult…
x-or-b Dec 1, 2025
6e5e815
Merge pull request #190 from CDP1-Team4:fix/46-download-spec
x-or-b Dec 1, 2025
53a3ac9
Update README.md to reflect OpenAPI to SDK Generator details and inst…
x-or-b Dec 1, 2025
fe203c8
Merge pull request #193 from CDP1-Team4:feat/openapi-to-sdk-readme
x-or-b Dec 1, 2025
39eb912
Update README.md to include Kiota as a prerequisite for the OpenAPI t…
x-or-b Dec 1, 2025
ac2a580
Merge pull request #194 from CDP1-Team4/feat/openapi-to-sdk-readme
x-or-b Dec 1, 2025
f800f05
Refactor OpenAPI to SDK generation logic and enhance configuration se…
x-or-b Dec 3, 2025
3dd9fab
Update configuration and service logic for OpenAPI to SDK generator
x-or-b Dec 3, 2025
c9c97ff
Enhance OpenAPI to SDK generator: add file upload endpoint, improve A…
x-or-b Dec 3, 2025
df15ec1
Refactor output path handling in SDK generation: update environment v…
x-or-b Dec 3, 2025
d21ae44
Remove TODO file and update comments for clarity in SDK generation an…
x-or-b Dec 4, 2025
395881a
Merge pull request #199 from CDP1-Team4/fix/48-execute-kiota
x-or-b Dec 4, 2025
b12d200
Remove emoji from SDK generation success message for consistency
x-or-b Dec 4, 2025
c09d725
Update HOST_ROOT_PATH environment variable comment for clarity in Doc…
x-or-b Dec 4, 2025
e232995
Enhance documentation and comments across multiple files for clarity …
x-or-b Dec 4, 2025
880d4e6
Refactor SDK generation success message formatting for improved reada…
x-or-b Dec 4, 2025
95878a4
Refactor SDK generation success message formatting for consistency an…
x-or-b Dec 4, 2025
e15fd6d
Merge pull request #200 from CDP1-Team4/fix/48-execute-kiota
x-or-b Dec 4, 2025
a97ace4
Merge branch 'microsoft:main' into openapi-to-sdk
x-or-b Dec 4, 2025
e52c502
Update README.md to correct prompt name and enhance SDK generation in…
x-or-b Dec 4, 2025
ed4ddcc
Merge pull request #201 from CDP1-Team4:fix/openapi-to-sdk-readme
x-or-b Dec 4, 2025
104c074
Create wwwroot
x-or-b Dec 4, 2025
8c0e812
Merge pull request #202 from CDP1-Team4/fix/openapi-to-sdk-wwwroot
x-or-b Dec 4, 2025
e889409
Delete openapi-to-sdk/plan.md
x-or-b Dec 4, 2025
71e23c5
Merge pull request #203 from CDP1-Team4/fix/openapi-to-sdk-delete-file
x-or-b Dec 4, 2025
f4e6d02
Delete openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp/wwwroot
x-or-b Dec 4, 2025
b00abf4
Add .gitkeep to wwwroot directory
x-or-b Dec 4, 2025
7cf7a11
Remove IOpenApiService interface and its documentation from OpenApiSe…
x-or-b Dec 4, 2025
e2ddd69
Refactor OpenAPI to SDK configuration and update Dockerfiles for impr…
x-or-b Dec 6, 2025
d78cc54
Remove commented architecture publish instruction from Dockerfile
x-or-b Dec 6, 2025
f658a37
Update MCP configuration and improve Azure file upload instructions
x-or-b Dec 7, 2025
0314d52
Refactor runtime settings by using tags and update container configur…
x-or-b Dec 12, 2025
44bb271
Add README
x-or-b Dec 12, 2025
ad0866a
Merge pull request #208 from CDP1-Team4:fix/using-tags
x-or-b Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ bld/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/
Expand Down
39 changes: 39 additions & 0 deletions Dockerfile.openapi-to-sdk
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# syntax=docker/dockerfile:1

FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build

COPY ./shared/McpSamples.Shared /source/shared/McpSamples.Shared
COPY ./openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp /source/openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp

WORKDIR /source/openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp

RUN dotnet tool install --global Microsoft.OpenApi.Kiota

ARG TARGETARCH
RUN case "$TARGETARCH" in \
"amd64") RID="linux-musl-x64" ;; \
"arm64") RID="linux-musl-arm64" ;; \
*) RID="linux-musl-x64" ;; \
esac && \
dotnet publish -c Release -o /app -r $RID --self-contained false

FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS final

WORKDIR /app

COPY --from=build /app .

COPY --from=build /root/.dotnet/tools /opt/kiota-tools

RUN chmod -R 755 /opt/kiota-tools && \
ln -s /opt/kiota-tools/kiota /usr/local/bin/kiota

RUN mkdir -p /app/workspace/generated && \
mkdir -p /app/workspace/specs && \
chown -R $APP_UID:$APP_UID /app/workspace

ENV PATH="/opt/kiota-tools:${PATH}"

USER $APP_UID

ENTRYPOINT ["dotnet", "McpSamples.OpenApiToSdk.HybridApp.dll"]
31 changes: 31 additions & 0 deletions Dockerfile.openapi-to-sdk-azure
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# syntax=docker/dockerfile:1

FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build

RUN dotnet tool install --global Microsoft.OpenApi.Kiota

COPY ./shared/McpSamples.Shared /source/shared/McpSamples.Shared
COPY ./openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp /source/openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp

WORKDIR /source/openapi-to-sdk/src/McpSamples.OpenApiToSdk.HybridApp

RUN dotnet publish -c Release -o /app --self-contained false

FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS final

WORKDIR /app

COPY --from=build /app .
COPY --from=build /root/.dotnet/tools /opt/kiota-tools

RUN mkdir -p /app/workspace/generated && \
mkdir -p /app/workspace/specs && \
chown -R $APP_UID:$APP_UID /app/workspace && \
chmod -R 755 /opt/kiota-tools && \
ln -s /opt/kiota-tools/kiota /usr/local/bin/kiota

ENV PATH="/opt/kiota-tools:${PATH}"

USER $APP_UID

ENTRYPOINT ["dotnet", "McpSamples.OpenApiToSdk.HybridApp.dll"]
32 changes: 32 additions & 0 deletions openapi-to-sdk/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Include any files or directories that you don't want to be copied to your
# container here (e.g., local build artifacts, temporary files, etc.).
#
# For more help, visit the .dockerignore file reference guide at
# https://docs.docker.com/go/build-context-dockerignore/

**/.DS_Store
**/.classpath
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/bin
**/charts
**/docker-compose*
**/compose.y*ml
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md
5 changes: 5 additions & 0 deletions openapi-to-sdk/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
!.vscode/mcp.json
.azure

image.png
test/
8 changes: 8 additions & 0 deletions openapi-to-sdk/.vscode/mcp.http.container.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"servers": {
"openapi-to-sdk": {
"type": "http",
"url": "http://localhost:8080/mcp"
}
}
}
8 changes: 8 additions & 0 deletions openapi-to-sdk/.vscode/mcp.http.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"servers": {
"openapi-to-sdk": {
"type": "http",
"url": "http://localhost:5222/mcp"
}
}
}
15 changes: 15 additions & 0 deletions openapi-to-sdk/.vscode/mcp.http.remote.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"inputs": [
{
"type": "promptString",
"id": "acaapp-server-fqdn",
"description": "Azure Container Apps FQDN"
}
],
"servers": {
"openapi-to-sdk": {
"type": "http",
"url": "https://${input:acaapp-server-fqdn}/mcp"
}
}
}
26 changes: 26 additions & 0 deletions openapi-to-sdk/.vscode/mcp.stdio.container.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"inputs": [
{
"type": "promptString",
"id": "consoleapp-project-path",
"description": "The absolute path to the console app project Directory"
}
],
"servers": {
"openapi-to-sdk": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"${input:consoleapp-project-path}/../../workspace:/app/workspace",
"-e",
"HOST_ROOT_PATH=${input:consoleapp-project-path}/../../",
"openapi-to-sdk:latest",
"-c"
]
}
}
}
20 changes: 20 additions & 0 deletions openapi-to-sdk/.vscode/mcp.stdio.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"inputs": [
{
"type": "promptString",
"id": "consoleapp-project-path",
"description": "The absolute path to the console app project Directory"
}
],
"servers": {
"openapi-to-sdk": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"${input:consoleapp-project-path}"
]
}
}
}
53 changes: 53 additions & 0 deletions openapi-to-sdk/McpOpenApiToSdk.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpSamples.Shared", "..\shared\McpSamples.Shared\McpSamples.Shared.csproj", "{D0715E17-D5D1-4062-A2FF-19B696DF623D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpSamples.OpenApiToSdk.HybridApp", "src\McpSamples.OpenApiToSdk.HybridApp\McpSamples.OpenApiToSdk.HybridApp.csproj", "{F760C2D9-C4DE-45B5-9A04-221958D959E7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Debug|x64.ActiveCfg = Debug|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Debug|x64.Build.0 = Debug|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Debug|x86.Build.0 = Debug|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Release|Any CPU.Build.0 = Release|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Release|x64.ActiveCfg = Release|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Release|x64.Build.0 = Release|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Release|x86.ActiveCfg = Release|Any CPU
{D0715E17-D5D1-4062-A2FF-19B696DF623D}.Release|x86.Build.0 = Release|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Debug|x64.ActiveCfg = Debug|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Debug|x64.Build.0 = Debug|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Debug|x86.ActiveCfg = Debug|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Debug|x86.Build.0 = Debug|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Release|Any CPU.Build.0 = Release|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Release|x64.ActiveCfg = Release|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Release|x64.Build.0 = Release|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Release|x86.ActiveCfg = Release|Any CPU
{F760C2D9-C4DE-45B5-9A04-221958D959E7}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{D0715E17-D5D1-4062-A2FF-19B696DF623D} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{F760C2D9-C4DE-45B5-9A04-221958D959E7} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal
Loading