#
tokens: 49922/50000 44/501 files (page 6/20)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 of 20. Use http://codebase.md/fujitsu-ai/mcp-server-for-mas-developments?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitattributes
├── .gitignore
├── agents
│   ├── __init__.py
│   ├── AgentInterface
│   │   ├── __init__.py
│   │   ├── Python
│   │   │   ├── __init__.py
│   │   │   ├── agent.py
│   │   │   ├── color.py
│   │   │   ├── config.py
│   │   │   ├── language.py
│   │   │   ├── local_file_handler.py
│   │   │   └── network.py
│   │   └── requirements.txt
│   ├── AgentMonitoring
│   │   ├── ChatBot-Agent Dashboard Example - Grafana.json
│   │   ├── images
│   │   │   ├── Grafana.png
│   │   │   └── Prometheus.png
│   │   ├── IoT-Agent Dashboard Example - Grafana.json
│   │   ├── OpenAI compatible API - Agent Dashboard Example - Grafana.json
│   │   ├── prometheus Example.yml
│   │   └── README.md
│   ├── ChatBotAgent
│   │   ├── __init__.py
│   │   ├── config.json.example
│   │   ├── html
│   │   │   ├── favicon.ico
│   │   │   ├── index_de.html
│   │   │   ├── index.html
│   │   │   ├── Logo_light.svg
│   │   │   ├── start_http_server.ps1
│   │   │   └── start_http_server.sh
│   │   ├── Python
│   │   │   ├── __init__.py
│   │   │   └── chatbot_agent.py
│   │   ├── README.md
│   │   └── requirements.txt
│   ├── IoTAgent
│   │   ├── config_example.json
│   │   ├── Python
│   │   │   ├── iot_mqtt_agent.py
│   │   │   └── language.py
│   │   ├── README.md
│   │   └── requirements.txt
│   ├── MCP-Client
│   │   ├── __init__.py
│   │   ├── .env.example
│   │   ├── Python
│   │   │   ├── __init__.py
│   │   │   ├── chat_handler.py
│   │   │   ├── config.py
│   │   │   ├── environment.py
│   │   │   ├── llm_client.py
│   │   │   ├── mcp_client_sse.py
│   │   │   ├── mcp_client.py
│   │   │   ├── messages
│   │   │   │   ├── __init__.py
│   │   │   │   ├── message_types
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── incrementing_id_message.py
│   │   │   │   │   ├── initialize_message.py
│   │   │   │   │   ├── json_rpc_message.py
│   │   │   │   │   ├── ping_message.py
│   │   │   │   │   ├── prompts_messages.py
│   │   │   │   │   ├── prompts_models.py
│   │   │   │   │   ├── resources_messages.py
│   │   │   │   │   └── tools_messages.py
│   │   │   │   ├── send_call_tool.py
│   │   │   │   ├── send_initialize_message.py
│   │   │   │   ├── send_message.py
│   │   │   │   ├── send_ping.py
│   │   │   │   ├── send_prompts.py
│   │   │   │   ├── send_resources.py
│   │   │   │   └── send_tools_list.py
│   │   │   ├── system_prompt_generator.py
│   │   │   ├── tools_handler.py
│   │   │   └── transport
│   │   │       ├── __init__.py
│   │   │       └── stdio
│   │   │           ├── __init__.py
│   │   │           ├── stdio_client.py
│   │   │           ├── stdio_server_parameters.py
│   │   │           └── stdio_server_shutdown.py
│   │   ├── README.md
│   │   ├── requirements.txt
│   │   └── server_config.json
│   ├── OpenAI_Compatible_API_Agent
│   │   ├── __init__.py
│   │   ├── docker-compose.yml
│   │   ├── Dockerfile
│   │   ├── pgpt_openai_api_mcp.json.example
│   │   ├── pgpt_openai_api_proxy.json.example
│   │   ├── Python
│   │   │   ├── __init__.py
│   │   │   ├── client_tests
│   │   │   │   ├── __init__.py
│   │   │   │   ├── openai_test_client_structured.py
│   │   │   │   ├── openai_test_client_tools.py
│   │   │   │   ├── openai_test_client.py
│   │   │   │   ├── vllm_client_multimodal.py
│   │   │   │   ├── vllm_client.py
│   │   │   │   ├── vllm_structured.py
│   │   │   │   └── vllm_structured2.py
│   │   │   ├── generate_api_key.py
│   │   │   ├── open_ai_helper.py
│   │   │   ├── openai_compatible_api.py
│   │   │   ├── openai_mcp_api.py
│   │   │   ├── pgpt_api.py
│   │   │   ├── privategpt_api.py
│   │   │   └── vllmproxy.py
│   │   ├── README.md
│   │   └── requirements.txt
│   └── SourceManagerAgent
│       ├── __init__.py
│       ├── config.json.example
│       └── Python
│           ├── __init__.py
│           ├── file_tools
│           │   └── loader_factory.py
│           ├── file_upload_agent.py
│           └── local_db.py
├── clients
│   ├── __init__.py
│   ├── C# .Net
│   │   ├── 1.0 mcp_login
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_login.deps.json
│   │   │   │           ├── mcp_login.dll
│   │   │   │           ├── mcp_login.exe
│   │   │   │           ├── mcp_login.pdb
│   │   │   │           ├── mcp_login.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_login.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_login.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_login.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_login.assets.cache
│   │   │   │   │       ├── mcp_login.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_login.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_login.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_login.csproj.Up2Date
│   │   │   │   │       ├── mcp_login.dll
│   │   │   │   │       ├── mcp_login.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_login.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_login.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_login.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_login.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_login.dll
│   │   │   │   ├── mcp_login.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_login.csproj.nuget.g.props
│   │   │   │   ├── mcp_login.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 1.1 mcp_logout
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_logout.deps.json
│   │   │   │           ├── mcp_logout.dll
│   │   │   │           ├── mcp_logout.exe
│   │   │   │           ├── mcp_logout.pdb
│   │   │   │           ├── mcp_logout.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_logout.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_logout.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_logout.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_logout.assets.cache
│   │   │   │   │       ├── mcp_logout.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_logout.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_logout.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_logout.csproj.Up2Date
│   │   │   │   │       ├── mcp_logout.dll
│   │   │   │   │       ├── mcp_logout.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_logout.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_logout.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_logout.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_logout.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_logout.dll
│   │   │   │   ├── mcp_logout.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_logout.csproj.nuget.g.props
│   │   │   │   ├── mcp_logout.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 2.0 mcp_chat
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_chat.deps.json
│   │   │   │           ├── mcp_chat.dll
│   │   │   │           ├── mcp_chat.exe
│   │   │   │           ├── mcp_chat.pdb
│   │   │   │           ├── mcp_chat.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_chat.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_chat.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_chat.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_chat.assets.cache
│   │   │   │   │       ├── mcp_chat.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_chat.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_chat.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_chat.csproj.Up2Date
│   │   │   │   │       ├── mcp_chat.dll
│   │   │   │   │       ├── mcp_chat.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_chat.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_chat.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_chat.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_chat.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_chat.dll
│   │   │   │   ├── mcp_chat.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_chat.csproj.nuget.g.props
│   │   │   │   ├── mcp_chat.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 2.1 mcp_continue_chat
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_continue_chat.deps.json
│   │   │   │           ├── mcp_continue_chat.dll
│   │   │   │           ├── mcp_continue_chat.exe
│   │   │   │           ├── mcp_continue_chat.pdb
│   │   │   │           ├── mcp_continue_chat.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_continue_chat.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_cont.EF178231.Up2Date
│   │   │   │   │       ├── mcp_continue_chat.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_continue_chat.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_continue_chat.assets.cache
│   │   │   │   │       ├── mcp_continue_chat.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_continue_chat.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_continue_chat.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_continue_chat.dll
│   │   │   │   │       ├── mcp_continue_chat.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_continue_chat.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_continue_chat.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_continue_chat.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_continue_chat.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_continue_chat.dll
│   │   │   │   ├── mcp_continue_chat.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_continue_chat.csproj.nuget.g.props
│   │   │   │   ├── mcp_continue_chat.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 2.2 mcp_get_chat_info
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_get_chat_info.deps.json
│   │   │   │           ├── mcp_get_chat_info.dll
│   │   │   │           ├── mcp_get_chat_info.exe
│   │   │   │           ├── mcp_get_chat_info.pdb
│   │   │   │           ├── mcp_get_chat_info.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── Dokumente - Verknüpfung.lnk
│   │   │   ├── mcp_get_chat_info.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_get_.DFF47B4E.Up2Date
│   │   │   │   │       ├── mcp_get_chat_info.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_get_chat_info.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_get_chat_info.assets.cache
│   │   │   │   │       ├── mcp_get_chat_info.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_get_chat_info.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_get_chat_info.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_get_chat_info.dll
│   │   │   │   │       ├── mcp_get_chat_info.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_get_chat_info.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_get_chat_info.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_get_chat_info.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_get_chat_info.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_get_chat_info.dll
│   │   │   │   ├── mcp_get_chat_info.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_get_chat_info.csproj.nuget.g.props
│   │   │   │   ├── mcp_get_chat_info.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 3.0 mcp_create_source
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_create_source.deps.json
│   │   │   │           ├── mcp_create_source.dll
│   │   │   │           ├── mcp_create_source.exe
│   │   │   │           ├── mcp_create_source.pdb
│   │   │   │           ├── mcp_create_source.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_create_source.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_crea.CB4ED912.Up2Date
│   │   │   │   │       ├── mcp_create_source.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_create_source.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_create_source.assets.cache
│   │   │   │   │       ├── mcp_create_source.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_create_source.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_create_source.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_create_source.dll
│   │   │   │   │       ├── mcp_create_source.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_create_source.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_create_source.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_create_source.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_create_source.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_create_source.dll
│   │   │   │   ├── mcp_create_source.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_create_source.csproj.nuget.g.props
│   │   │   │   ├── mcp_create_source.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 3.1 mcp_get_source
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_get_source.deps.json
│   │   │   │           ├── mcp_get_source.dll
│   │   │   │           ├── mcp_get_source.exe
│   │   │   │           ├── mcp_get_source.pdb
│   │   │   │           ├── mcp_get_source.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_get_source.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_get_.4E61956F.Up2Date
│   │   │   │   │       ├── mcp_get_source.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_get_source.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_get_source.assets.cache
│   │   │   │   │       ├── mcp_get_source.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_get_source.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_get_source.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_get_source.dll
│   │   │   │   │       ├── mcp_get_source.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_get_source.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_get_source.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_get_source.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_get_source.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_get_source.dll
│   │   │   │   ├── mcp_get_source.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_get_source.csproj.nuget.g.props
│   │   │   │   ├── mcp_get_source.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 3.2 mcp_list_sources
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_list_sources.deps.json
│   │   │   │           ├── mcp_list_sources.dll
│   │   │   │           ├── mcp_list_sources.exe
│   │   │   │           ├── mcp_list_sources.pdb
│   │   │   │           ├── mcp_list_sources.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_list_sources.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_list_sources.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_list_sources.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_list_sources.assets.cache
│   │   │   │   │       ├── mcp_list_sources.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_list_sources.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_list_sources.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_list_sources.dll
│   │   │   │   │       ├── mcp_list_sources.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_list_sources.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_list_sources.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_list_sources.pdb
│   │   │   │   │       ├── mcp_list.A720E197.Up2Date
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_list_sources.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_list_sources.dll
│   │   │   │   ├── mcp_list_sources.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_list_sources.csproj.nuget.g.props
│   │   │   │   ├── mcp_list_sources.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 3.3 mcp_edit_source
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_edit_source.deps.json
│   │   │   │           ├── mcp_edit_source.dll
│   │   │   │           ├── mcp_edit_source.exe
│   │   │   │           ├── mcp_edit_source.pdb
│   │   │   │           ├── mcp_edit_source.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_edit_source.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_edit_source.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_edit_source.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_edit_source.assets.cache
│   │   │   │   │       ├── mcp_edit_source.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_edit_source.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_edit_source.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_edit_source.dll
│   │   │   │   │       ├── mcp_edit_source.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_edit_source.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_edit_source.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_edit_source.pdb
│   │   │   │   │       ├── mcp_edit.7303BE3B.Up2Date
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_edit_source.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_edit_source.dll
│   │   │   │   ├── mcp_edit_source.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_edit_source.csproj.nuget.g.props
│   │   │   │   ├── mcp_edit_source.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 3.4 mcp_delete_source
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_delete_source.deps.json
│   │   │   │           ├── mcp_delete_source.dll
│   │   │   │           ├── mcp_delete_source.exe
│   │   │   │           ├── mcp_delete_source.pdb
│   │   │   │           ├── mcp_delete_source.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_delete_source.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_dele.67DD13F9.Up2Date
│   │   │   │   │       ├── mcp_delete_source.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_delete_source.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_delete_source.assets.cache
│   │   │   │   │       ├── mcp_delete_source.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_delete_source.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_delete_source.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_delete_source.dll
│   │   │   │   │       ├── mcp_delete_source.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_delete_source.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_delete_source.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_delete_source.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_delete_source.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_delete_source.dll
│   │   │   │   ├── mcp_delete_source.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_delete_source.csproj.nuget.g.props
│   │   │   │   ├── mcp_delete_source.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 4.0 mcp_list_groups
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_list_groups.deps.json
│   │   │   │           ├── mcp_list_groups.dll
│   │   │   │           ├── mcp_list_groups.exe
│   │   │   │           ├── mcp_list_groups.pdb
│   │   │   │           ├── mcp_list_groups.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_list_groups.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_list_groups.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_list_groups.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_list_groups.assets.cache
│   │   │   │   │       ├── mcp_list_groups.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_list_groups.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_list_groups.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_list_groups.dll
│   │   │   │   │       ├── mcp_list_groups.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_list_groups.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_list_groups.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_list_groups.pdb
│   │   │   │   │       ├── mcp_list.EBD5E0D2.Up2Date
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_list_groups.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_list_groups.dll
│   │   │   │   ├── mcp_list_groups.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_list_groups.csproj.nuget.g.props
│   │   │   │   ├── mcp_list_groups.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 4.1 mcp_store_group
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_store_group.deps.json
│   │   │   │           ├── mcp_store_group.dll
│   │   │   │           ├── mcp_store_group.exe
│   │   │   │           ├── mcp_store_group.pdb
│   │   │   │           ├── mcp_store_group.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_store_group.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_stor.AFB4AA35.Up2Date
│   │   │   │   │       ├── mcp_store_group.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_store_group.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_store_group.assets.cache
│   │   │   │   │       ├── mcp_store_group.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_store_group.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_store_group.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_store_group.dll
│   │   │   │   │       ├── mcp_store_group.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_store_group.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_store_group.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_store_group.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_store_group.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_store_group.dll
│   │   │   │   ├── mcp_store_group.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_store_group.csproj.nuget.g.props
│   │   │   │   ├── mcp_store_group.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 4.2 mcp_delete_group
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_delete_group.deps.json
│   │   │   │           ├── mcp_delete_group.dll
│   │   │   │           ├── mcp_delete_group.exe
│   │   │   │           ├── mcp_delete_group.pdb
│   │   │   │           ├── mcp_delete_group.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_delete_group.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_dele.FE1C6298.Up2Date
│   │   │   │   │       ├── mcp_delete_group.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_delete_group.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_delete_group.assets.cache
│   │   │   │   │       ├── mcp_delete_group.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_delete_group.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_delete_group.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_delete_group.dll
│   │   │   │   │       ├── mcp_delete_group.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_delete_group.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_delete_group.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_delete_group.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_delete_group.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_delete_group.dll
│   │   │   │   ├── mcp_delete_group.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_delete_group.csproj.nuget.g.props
│   │   │   │   ├── mcp_delete_group.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 5.0 mcp_store_user
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_store_user.deps.json
│   │   │   │           ├── mcp_store_user.dll
│   │   │   │           ├── mcp_store_user.exe
│   │   │   │           ├── mcp_store_user.pdb
│   │   │   │           ├── mcp_store_user.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_store_user.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_stor.6C0F0C8A.Up2Date
│   │   │   │   │       ├── mcp_store_user.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_store_user.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_store_user.assets.cache
│   │   │   │   │       ├── mcp_store_user.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_store_user.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_store_user.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_store_user.dll
│   │   │   │   │       ├── mcp_store_user.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_store_user.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_store_user.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_store_user.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_store_user.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_store_user.dll
│   │   │   │   ├── mcp_store_user.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_store_user.csproj.nuget.g.props
│   │   │   │   ├── mcp_store_user.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 5.1 mcp_edit_user
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_edit_user.deps.json
│   │   │   │           ├── mcp_edit_user.dll
│   │   │   │           ├── mcp_edit_user.exe
│   │   │   │           ├── mcp_edit_user.pdb
│   │   │   │           ├── mcp_edit_user.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_edit_user.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_edit_user.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_edit_user.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_edit_user.assets.cache
│   │   │   │   │       ├── mcp_edit_user.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_edit_user.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_edit_user.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_edit_user.dll
│   │   │   │   │       ├── mcp_edit_user.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_edit_user.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_edit_user.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_edit_user.pdb
│   │   │   │   │       ├── mcp_edit.94A30270.Up2Date
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_edit_user.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_edit_user.dll
│   │   │   │   ├── mcp_edit_user.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_edit_user.csproj.nuget.g.props
│   │   │   │   ├── mcp_edit_user.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── 5.2 mcp_delete_user
│   │   │   ├── bin
│   │   │   │   └── Debug
│   │   │   │       └── net9.0
│   │   │   │           ├── mcp_delete_user.deps.json
│   │   │   │           ├── mcp_delete_user.dll
│   │   │   │           ├── mcp_delete_user.exe
│   │   │   │           ├── mcp_delete_user.pdb
│   │   │   │           ├── mcp_delete_user.runtimeconfig.json
│   │   │   │           └── Newtonsoft.Json.dll
│   │   │   ├── mcp_delete_user.csproj
│   │   │   ├── obj
│   │   │   │   ├── Debug
│   │   │   │   │   └── net9.0
│   │   │   │   │       ├── .NETCoreApp,Version=v9.0.AssemblyAttributes.cs
│   │   │   │   │       ├── apphost.exe
│   │   │   │   │       ├── mcp_dele.CEB7E33D.Up2Date
│   │   │   │   │       ├── mcp_delete_user.AssemblyInfo.cs
│   │   │   │   │       ├── mcp_delete_user.AssemblyInfoInputs.cache
│   │   │   │   │       ├── mcp_delete_user.assets.cache
│   │   │   │   │       ├── mcp_delete_user.csproj.AssemblyReference.cache
│   │   │   │   │       ├── mcp_delete_user.csproj.CoreCompileInputs.cache
│   │   │   │   │       ├── mcp_delete_user.csproj.FileListAbsolute.txt
│   │   │   │   │       ├── mcp_delete_user.dll
│   │   │   │   │       ├── mcp_delete_user.GeneratedMSBuildEditorConfig.editorconfig
│   │   │   │   │       ├── mcp_delete_user.genruntimeconfig.cache
│   │   │   │   │       ├── mcp_delete_user.GlobalUsings.g.cs
│   │   │   │   │       ├── mcp_delete_user.pdb
│   │   │   │   │       ├── ref
│   │   │   │   │       │   └── mcp_delete_user.dll
│   │   │   │   │       └── refint
│   │   │   │   │           └── mcp_delete_user.dll
│   │   │   │   ├── mcp_delete_user.csproj.nuget.dgspec.json
│   │   │   │   ├── mcp_delete_user.csproj.nuget.g.props
│   │   │   │   ├── mcp_delete_user.csproj.nuget.g.targets
│   │   │   │   ├── project.assets.json
│   │   │   │   └── project.nuget.cache
│   │   │   └── Program.cs
│   │   ├── Code Archiv
│   │   │   ├── mcp_chat.cs
│   │   │   ├── mcp_continue_chat.cs
│   │   │   ├── mcp_create_source.cs
│   │   │   ├── mcp_delete_group.cs
│   │   │   ├── mcp_delete_source.cs
│   │   │   ├── mcp_delete_user.cs
│   │   │   ├── mcp_edit_source.cs
│   │   │   ├── mcp_edit_user.cs
│   │   │   ├── mcp_get_chat_info.cs
│   │   │   ├── mcp_get_source.cs
│   │   │   ├── mcp_list_groups.cs
│   │   │   ├── mcp_list_sources.cs
│   │   │   ├── mcp_login.cs
│   │   │   ├── mcp_logout.cs
│   │   │   ├── mcp_store_group.cs
│   │   │   └── mcp_store_user.cs
│   │   └── README.md
│   ├── C++
│   │   ├── .vscode
│   │   │   └── launch.json
│   │   ├── 1.0 mcp_login
│   │   │   ├── MCPLoginClient.cpp
│   │   │   └── Non-TLS version
│   │   │       ├── MCPLoginClient.cpp
│   │   │       └── MCPLoginClient.exe
│   │   ├── 1.1 mcp_logout
│   │   │   ├── MCPLogoutClient.cpp
│   │   │   └── MCPLogoutClient.exe
│   │   ├── 2.0 mcp_chat
│   │   │   ├── MCPChatClient.cpp
│   │   │   └── MCPChatClient.exe
│   │   ├── 2.1 mcp_continue_chat
│   │   │   ├── MCPChatContinuationClient.cpp
│   │   │   └── MCPChatContinuationClient.exe
│   │   ├── 2.2 mcp_get_chat_info
│   │   │   ├── MCPGetChatInfoClient.cpp
│   │   │   └── MCPGetChatInfoClient.exe
│   │   ├── 3.0 mcp_create_source
│   │   │   ├── MCPCreateSourceClient.cpp
│   │   │   └── MCPCreateSourceClient.exe
│   │   ├── 3.1 mcp_get_source
│   │   │   ├── MCPGetSourceClient.cpp
│   │   │   └── MCPGetSourceClient.exe
│   │   ├── 3.2 mcp_list_sources
│   │   │   ├── MCPListSourcesClient.cpp
│   │   │   └── MCPListSourcesClient.exe
│   │   ├── 3.3 mcp_edit_source
│   │   │   ├── MCPEditSourceClient.cpp
│   │   │   └── MCPEditSourceClient.exe
│   │   ├── 3.4 mcp_delete_source
│   │   │   ├── MCPDeleteSourceClient.cpp
│   │   │   └── MCPDeleteSourceClient.exe
│   │   ├── 4.0 mcp_list_groups
│   │   │   ├── MCPListGroupsClient.cpp
│   │   │   └── MCPListGroupsClient.exe
│   │   ├── 4.1 mcp_store_group
│   │   │   ├── MCPStoreGroupClient.cpp
│   │   │   └── MCPStoreGroupClient.exe
│   │   ├── 4.2 mcp_delete_group
│   │   │   ├── MPCDeleteGroupClient.cpp
│   │   │   └── MPCDeleteGroupClient.exe
│   │   ├── 5.0 mcp_store_user
│   │   │   ├── MCPStoreUserClient.cpp
│   │   │   └── MCPStoreUserClient.exe
│   │   ├── 5.1 mcp_edit_user
│   │   │   ├── MCPEditUserClient.cpp
│   │   │   └── MCPEditUserClient.exe
│   │   ├── 5.2 mcp_delete_user
│   │   │   ├── MCPDeleteUserClient.cpp
│   │   │   └── MCPDeleteUserClient.exe
│   │   ├── 9.0 mcp_keygen
│   │   │   ├── MCPKeygenClient.cpp
│   │   │   └── MCPKeygenClient.exe
│   │   └── README.md
│   ├── Go
│   │   ├── 1.0 mcp_login
│   │   │   ├── go.mod
│   │   │   ├── MCPLoginClient.exe
│   │   │   └── MCPLoginClient.go
│   │   ├── 1.1 mcp_logout
│   │   │   ├── MCPLogoutClient.exe
│   │   │   └── MCPLogoutClient.go
│   │   ├── 2.0 mcp_chat
│   │   │   ├── MCPChatClient.exe
│   │   │   └── MCPChatClient.go
│   │   ├── 2.1 mcp_continue_chat
│   │   │   ├── MCPChatContinuationClient.exe
│   │   │   └── MCPChatContinuationClient.go
│   │   ├── 2.2 mcp_get_chat_info
│   │   │   ├── MCPGetChatInfoClient.exe
│   │   │   └── MCPGetChatInfoClient.go
│   │   ├── 3.0 mcp_create_source
│   │   │   ├── MCPCreateSourceClient.exe
│   │   │   └── MCPCreateSourceClient.go
│   │   ├── 3.1 mcp_get_source
│   │   │   ├── MCPGetSourceClient.exe
│   │   │   └── MCPGetSourceClient.go
│   │   ├── 3.2 mcp_list_sources
│   │   │   ├── MCPListSourcesClient.exe
│   │   │   └── MCPListSourcesClient.go
│   │   ├── 3.3 mcp_edit_source
│   │   │   ├── MCPEditSourceClient.exe
│   │   │   └── MCPEditSourceClient.go
│   │   ├── 3.4 mcp_delete_source
│   │   │   ├── MCPDeleteSourceClient.exe
│   │   │   └── MCPDeleteSourceClient.go
│   │   ├── 4.0 mcp_list_groups
│   │   │   ├── MCPListGroupsClient.exe
│   │   │   └── MCPListGroupsClient.go
│   │   ├── 4.1 mcp_store_group
│   │   │   ├── MCPStoreGroupClient.exe
│   │   │   └── MCPStoreGroupClient.go
│   │   ├── 4.2 mcp_delete_group
│   │   │   ├── MCPDeleteGroupClient.exe
│   │   │   └── MCPDeleteGroupClient.go
│   │   ├── 5.0 mcp_store_user
│   │   │   ├── MCPStoreUserClient.exe
│   │   │   └── MCPStoreUserClient.go
│   │   ├── 5.1 mcp_edit_user
│   │   │   ├── MCPEditUserClient.exe
│   │   │   └── MCPEditUserClient.go
│   │   ├── 5.2 mcp_delete_user
│   │   │   ├── MCPDeleteUserClient.exe
│   │   │   └── MCPDeleteUserClient.go
│   │   ├── 9.0 mcp_keygen
│   │   │   ├── MCPKeygenClient.exe
│   │   │   └── MCPKeygenClient.go
│   │   └── README.md
│   ├── Gradio
│   │   ├── Api.py
│   │   ├── config.json.example
│   │   ├── config.py
│   │   ├── favicon.ico
│   │   ├── file_tools
│   │   │   └── loader_factory.py
│   │   ├── language.py
│   │   ├── logos
│   │   │   ├── fsas.png
│   │   │   └── Logo_dark.svg
│   │   ├── main.py
│   │   ├── mcp_client.py
│   │   ├── mcp_servers
│   │   │   ├── arxiv
│   │   │   │   ├── arxiv-stdio.js
│   │   │   │   ├── package.json
│   │   │   │   ├── README.md
│   │   │   │   ├── requirements.txt
│   │   │   │   └── server_config.example.json
│   │   │   ├── demo-mcp-server
│   │   │   │   ├── demo-tools-sse.js
│   │   │   │   ├── demo-tools-stdio.js
│   │   │   │   └── tools
│   │   │   │       ├── assets.js
│   │   │   │       ├── calculator.js
│   │   │   │       └── weather.js
│   │   │   ├── filesystem
│   │   │   │   ├── Dockerfile
│   │   │   │   ├── index.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── README.md
│   │   │   │   ├── test
│   │   │   │   │   └── new.txt
│   │   │   │   └── tsconfig.json
│   │   │   ├── moondream
│   │   │   │   └── server.py
│   │   │   ├── pgpt
│   │   │   │   ├── __init__.py
│   │   │   │   ├── Api.py
│   │   │   │   ├── config.json.example
│   │   │   │   ├── config.py
│   │   │   │   ├── language.py
│   │   │   │   ├── pyproject.toml
│   │   │   │   ├── README.md
│   │   │   │   └── server.py
│   │   │   ├── replicate_flux
│   │   │   │   └── server.py
│   │   │   └── sqlite
│   │   │       ├── .python-version
│   │   │       ├── Dockerfile
│   │   │       ├── pyproject.toml
│   │   │       ├── README.md
│   │   │       └── src
│   │   │           └── mcp_server_sqlite
│   │   │               ├── __init__.py
│   │   │               └── server.py
│   │   ├── messages
│   │   │   ├── __init__.py
│   │   │   ├── message_types
│   │   │   │   ├── __init__.py
│   │   │   │   ├── incrementing_id_message.py
│   │   │   │   ├── initialize_message.py
│   │   │   │   ├── json_rpc_message.py
│   │   │   │   ├── ping_message.py
│   │   │   │   ├── prompts_messages.py
│   │   │   │   ├── prompts_models.py
│   │   │   │   ├── resources_messages.py
│   │   │   │   └── tools_messages.py
│   │   │   ├── send_call_tool.py
│   │   │   ├── send_initialize_message.py
│   │   │   ├── send_message.py
│   │   │   ├── send_ping.py
│   │   │   ├── send_prompts.py
│   │   │   ├── send_resources.py
│   │   │   └── send_tools_list.py
│   │   ├── README.md
│   │   ├── requirements.txt
│   │   ├── server_config.json
│   │   ├── SourceManagement.py
│   │   ├── transport
│   │   │   ├── __init__.py
│   │   │   └── stdio
│   │   │       ├── __init__.py
│   │   │       ├── stdio_client.py
│   │   │       ├── stdio_server_parameters.py
│   │   │       └── stdio_server_shutdown.py
│   │   ├── tsconfig.json
│   │   └── UserManagement.py
│   ├── Java
│   │   ├── 1.0 mcp_login
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPLoginClient.class
│   │   │   └── MCPLoginClient.java
│   │   ├── 1.1 mcp_logout
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPLogoutClient.class
│   │   │   └── MCPLogoutClient.java
│   │   ├── 2.0 mcp_chat
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPChatClient.class
│   │   │   └── MCPChatClient.java
│   │   ├── 2.1 mcp_continue_chat
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPContinueChatClient.class
│   │   │   └── MCPContinueChatClient.java
│   │   ├── 2.2 mcp_get_chat_info
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPGetChatInfoClient.class
│   │   │   └── MCPGetChatInfoClient.java
│   │   ├── 3.0 mcp_create_source
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPCreateSourceClient.class
│   │   │   └── MCPCreateSourceClient.java
│   │   ├── 3.1 mcp_get_source
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPGetSourceClient.class
│   │   │   └── MCPGetSourceClient.java
│   │   ├── 3.2 mcp_list_sources
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPListSourcesClient.class
│   │   │   └── MCPListSourcesClient.java
│   │   ├── 3.3 mcp_edit_source
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPEditSourceClient.class
│   │   │   └── MCPEditSourceClient.java
│   │   ├── 3.4 mcp_delete_source
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPDeleteSourceClient.class
│   │   │   └── MCPDeleteSourceClient.java
│   │   ├── 4.0 mcp_list_groups
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPListGroupsClient.class
│   │   │   └── MCPListGroupsClient.java
│   │   ├── 4.1 mcp_store_group
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPStoreGroupClient.class
│   │   │   └── MCPStoreGroupClient.java
│   │   ├── 4.2 mcp_delete_group
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPDeleteGroupClient.class
│   │   │   └── MCPDeleteGroupClient.java
│   │   ├── 5.0 mcp_store_user
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPStoreUserClient.class
│   │   │   └── MCPStoreUserClient.java
│   │   ├── 5.1 mcp_edit_user
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPEditUserClient.class
│   │   │   └── MCPEditUserClient.java
│   │   ├── 5.2 mcp_delete_user
│   │   │   ├── json-20241224.jar
│   │   │   ├── MCPDeleteUserClient.class
│   │   │   └── MCPDeleteUserClient.java
│   │   └── README.md
│   ├── JavaScript
│   │   ├── 1.0 mcp_login
│   │   │   └── MCPLoginClient.js
│   │   ├── 1.1 mcp_logout
│   │   │   └── MCPLogoutClient.js
│   │   ├── 2.0 mcp_chat
│   │   │   └── MCPChatClient.js
│   │   ├── 2.1 mcp_continue_chat
│   │   │   └── MCPContinueChatClient.js
│   │   ├── 2.2 mcp_get_chat_info
│   │   │   └── MCPGetChatInfoClient.js
│   │   ├── 3.0 mcp_create_source
│   │   │   └── MCPCreateSourceClient.js
│   │   ├── 3.1 mcp_get_source
│   │   │   └── MCPGetSourceClient.js
│   │   ├── 3.2 mcp_list_sources
│   │   │   └── MCPListSourcesClient.js
│   │   ├── 3.3 mcp_edit_source
│   │   │   └── MCPEditSourceClient.js
│   │   ├── 3.4 mcp_delete_source
│   │   │   └── MCPDeleteSourceClient.js
│   │   ├── 4.0 mcp_list_groups
│   │   │   └── MCPListGroupsClient.js
│   │   ├── 4.1 mcp_store_group
│   │   │   └── MCPStoreGroupClient.js
│   │   ├── 4.2 mcp_delete_group
│   │   │   └── MCPDeleteGroupClient.js
│   │   ├── 5.0 mcp_store_user
│   │   │   └── MCPStoreUserClient.js
│   │   ├── 5.1 mcp_edit_user
│   │   │   └── MCPEditUserClient.js
│   │   ├── 5.2 mcp_delete_user
│   │   │   └── MCPDeleteUserClient.js
│   │   ├── 9.0 mcp_keygen
│   │   │   └── MCPKeygenClient.js
│   │   └── README.md
│   ├── PHP
│   │   ├── 1.0 mcp_login
│   │   │   └── MCPLoginClient.php
│   │   ├── 1.1 mcp_logout
│   │   │   └── MCPLogoutClient.php
│   │   ├── 2.0 mcp_chat
│   │   │   └── MCPChatClient.php
│   │   ├── 2.1 mcp_continue_chat
│   │   │   └── MCPContinueChatClient.php
│   │   ├── 2.2 mcp_get_chat_info
│   │   │   └── MCPGetChatInfoClient.php
│   │   ├── 3.0 mcp_create_source
│   │   │   └── MCPCreateSourceClient.php
│   │   ├── 3.1 mcp_get_source
│   │   │   └── MCPGetSourceClient.php
│   │   ├── 3.2 mcp_list_sources
│   │   │   └── MCPListSourcesClient.php
│   │   ├── 3.3 mcp_edit_source
│   │   │   └── MCPEditSourceClient.php
│   │   ├── 3.4 mcp_delete_source
│   │   │   └── MCPDeleteSourceClient.php
│   │   ├── 4.0 mcp_list_groups
│   │   │   └── MCPListGroupsClient.php
│   │   ├── 4.1 mcp_store_group
│   │   │   └── MCPStoreGroupClient.php
│   │   ├── 4.2 mcp_delete_group
│   │   │   └── MCPDeleteGroupClient.php
│   │   ├── 5.0 mcp_store_user
│   │   │   └── MCPStoreUserClient.php
│   │   ├── 5.1 mcp_edit_user
│   │   │   └── MCPEditUserClient.php
│   │   ├── 5.2 mcp_delete_user
│   │   │   └── MCPDeleteUserClient.php
│   │   ├── 9.0 mcp_keygen
│   │   │   └── MCPKeygenClient.php
│   │   └── README.md
│   └── Python
│       ├── __init__.py
│       ├── 1.0 mcp_login
│       │   └── MCPLoginClient.py
│       ├── 1.1 mcp_logout
│       │   └── MCPLogoutClient.py
│       ├── 2.0 mcp_chat
│       │   └── MCPChatClient.py
│       ├── 2.1 mcp_continue_chat
│       │   └── MCPContinueChatClient.py
│       ├── 2.2 mcp_get_chat_info
│       │   └── MCPGetChatInfoClient.py
│       ├── 2.3 mcp_delete_all_chats
│       │   └── MCPDeleteAllChatsClient.py
│       ├── 2.4 mcp_delete_chat
│       │   └── MCPDeleteChatClient.py
│       ├── 3.0 mcp_create_source
│       │   └── MCPCreateSourceClient.py
│       ├── 3.1 mcp_get_source
│       │   └── MCPGetSourceClient.py
│       ├── 3.2 mcp_list_sources
│       │   └── MCPListSourcesClient.py
│       ├── 3.3 mcp_edit_source
│       │   └── MCPEditSourceClient.py
│       ├── 3.4 mcp_delete_source
│       │   └── MCPDeleteSourceClient.py
│       ├── 4.0 mcp_list_groups
│       │   └── MCPListGroupsClient.py
│       ├── 4.1 mcp_store_group
│       │   └── MCPStoreGroupClient.py
│       ├── 4.2 mcp_delete_group
│       │   └── MCPDeleteGroupClient.py
│       ├── 5.0 mcp_store_user
│       │   └── MCPStoreUserClient.py
│       ├── 5.1 mcp_edit_user
│       │   └── MCPEditUserClient.py
│       ├── 5.2 mcp_delete_user
│       │   └── MCPDeleteUserClient.py
│       ├── 9.0 mcp_keygen
│       │   └── MCPKeygenClient.py
│       ├── Gradio
│       │   ├── __init__.py
│       │   └── server_config.json
│       └── README.md
├── examples
│   ├── create_users_from_csv
│   │   ├── config.json.example
│   │   ├── config.py
│   │   ├── create_users_from_csv.py
│   │   └── language.py
│   ├── dynamic_sources
│   │   └── rss_reader
│   │       ├── Api.py
│   │       ├── config.json.example
│   │       ├── config.py
│   │       ├── demo_dynamic_sources.py
│   │       └── rss_parser.py
│   ├── example_users_to_add_no_tz.csv
│   └── sftp_upload_with_id
│       ├── Api.py
│       ├── config_ftp.json.example
│       ├── config.py
│       ├── demo_upload.py
│       ├── language.py
│       └── requirements.txt
├── images
│   ├── alternative mcp client.png
│   ├── favicon
│   │   ├── android-chrome-192x192.png
│   │   ├── android-chrome-512x512.png
│   │   ├── apple-touch-icon.png
│   │   ├── favicon-16x16.png
│   │   ├── favicon-32x32.png
│   │   ├── favicon.ico
│   │   └── site.webmanifest
│   ├── mcp-general-architecture.png
│   ├── privateGPT-MCP.png
│   └── privateGPT.png
├── InstallMPCServer.sh
├── jest.config.js
├── LICENSE
├── package.json
├── pgpt.env.json.example
├── README.md
├── security
│   ├── generate_decrypted_password.js
│   └── generate_encrypted_password.js
├── src
│   ├── helper.js
│   ├── index.js
│   ├── logger.js
│   ├── pgpt-messages.js
│   ├── public
│   │   ├── index.html
│   │   └── pgpt-mcp-logo.png
│   ├── services
│   │   └── pgpt-service.ts
│   └── types
│       └── api.ts
├── start_chatbot_agent.ps1
├── start_chatbot_agent.sh
├── start_iot_agent.ps1
├── start_iot_agent.sh
├── start_openai_compatible_api_agent.ps1
├── start_openai_compatible_api_agent.sh
├── tsconfig.json
├── ver
│   ├── index_np.js
│   └── index_proxy_np.js
└── WORKLOG.md
```

# Files

--------------------------------------------------------------------------------
/clients/C# .Net/3.0 mcp_create_source/obj/mcp_create_source.csproj.nuget.dgspec.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "format": 1,
 3 |   "restore": {
 4 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_create_source\\mcp_create_source.csproj": {}
 5 |   },
 6 |   "projects": {
 7 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_create_source\\mcp_create_source.csproj": {
 8 |       "version": "1.0.0",
 9 |       "restore": {
10 |         "projectUniqueName": "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_create_source\\mcp_create_source.csproj",
11 |         "projectName": "mcp_create_source",
12 |         "projectPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_create_source\\mcp_create_source.csproj",
13 |         "packagesPath": "C:\\Users\\uwuertz\\.nuget\\packages\\",
14 |         "outputPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_create_source\\obj\\",
15 |         "projectStyle": "PackageReference",
16 |         "configFilePaths": [
17 |           "C:\\Users\\uwuertz\\AppData\\Roaming\\NuGet\\NuGet.Config"
18 |         ],
19 |         "originalTargetFrameworks": [
20 |           "net9.0"
21 |         ],
22 |         "sources": {
23 |           "https://api.nuget.org/v3/index.json": {}
24 |         },
25 |         "frameworks": {
26 |           "net9.0": {
27 |             "targetAlias": "net9.0",
28 |             "projectReferences": {}
29 |           }
30 |         },
31 |         "warningProperties": {
32 |           "warnAsError": [
33 |             "NU1605"
34 |           ]
35 |         },
36 |         "restoreAuditProperties": {
37 |           "enableAudit": "true",
38 |           "auditLevel": "low",
39 |           "auditMode": "direct"
40 |         },
41 |         "SdkAnalysisLevel": "9.0.100"
42 |       },
43 |       "frameworks": {
44 |         "net9.0": {
45 |           "targetAlias": "net9.0",
46 |           "dependencies": {
47 |             "Newtonsoft.Json": {
48 |               "target": "Package",
49 |               "version": "[13.0.3, )"
50 |             }
51 |           },
52 |           "imports": [
53 |             "net461",
54 |             "net462",
55 |             "net47",
56 |             "net471",
57 |             "net472",
58 |             "net48",
59 |             "net481"
60 |           ],
61 |           "assetTargetFallback": true,
62 |           "warn": true,
63 |           "frameworkReferences": {
64 |             "Microsoft.NETCore.App": {
65 |               "privateAssets": "all"
66 |             }
67 |           },
68 |           "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.101/PortableRuntimeIdentifierGraph.json"
69 |         }
70 |       }
71 |     }
72 |   }
73 | }
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.4 mcp_delete_source/obj/mcp_delete_source.csproj.nuget.dgspec.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "format": 1,
 3 |   "restore": {
 4 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_delete_source\\mcp_delete_source.csproj": {}
 5 |   },
 6 |   "projects": {
 7 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_delete_source\\mcp_delete_source.csproj": {
 8 |       "version": "1.0.0",
 9 |       "restore": {
10 |         "projectUniqueName": "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_delete_source\\mcp_delete_source.csproj",
11 |         "projectName": "mcp_delete_source",
12 |         "projectPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_delete_source\\mcp_delete_source.csproj",
13 |         "packagesPath": "C:\\Users\\uwuertz\\.nuget\\packages\\",
14 |         "outputPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\mcp_delete_source\\obj\\",
15 |         "projectStyle": "PackageReference",
16 |         "configFilePaths": [
17 |           "C:\\Users\\uwuertz\\AppData\\Roaming\\NuGet\\NuGet.Config"
18 |         ],
19 |         "originalTargetFrameworks": [
20 |           "net9.0"
21 |         ],
22 |         "sources": {
23 |           "https://api.nuget.org/v3/index.json": {}
24 |         },
25 |         "frameworks": {
26 |           "net9.0": {
27 |             "targetAlias": "net9.0",
28 |             "projectReferences": {}
29 |           }
30 |         },
31 |         "warningProperties": {
32 |           "warnAsError": [
33 |             "NU1605"
34 |           ]
35 |         },
36 |         "restoreAuditProperties": {
37 |           "enableAudit": "true",
38 |           "auditLevel": "low",
39 |           "auditMode": "direct"
40 |         },
41 |         "SdkAnalysisLevel": "9.0.100"
42 |       },
43 |       "frameworks": {
44 |         "net9.0": {
45 |           "targetAlias": "net9.0",
46 |           "dependencies": {
47 |             "Newtonsoft.Json": {
48 |               "target": "Package",
49 |               "version": "[13.0.3, )"
50 |             }
51 |           },
52 |           "imports": [
53 |             "net461",
54 |             "net462",
55 |             "net47",
56 |             "net471",
57 |             "net472",
58 |             "net48",
59 |             "net481"
60 |           ],
61 |           "assetTargetFallback": true,
62 |           "warn": true,
63 |           "frameworkReferences": {
64 |             "Microsoft.NETCore.App": {
65 |               "privateAssets": "all"
66 |             }
67 |           },
68 |           "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.101/PortableRuntimeIdentifierGraph.json"
69 |         }
70 |       }
71 |     }
72 |   }
73 | }
```

--------------------------------------------------------------------------------
/agents/OpenAI_Compatible_API_Agent/Python/client_tests/openai_test_client_tools.py:
--------------------------------------------------------------------------------

```python
 1 | import argparse
 2 | import json
 3 | from enum import Enum
 4 | from typing import Union
 5 | 
 6 | from pydantic import BaseModel
 7 | 
 8 | import openai
 9 | from openai import OpenAI
10 | 
11 | 
12 | class Table(str, Enum):
13 |     orders = "orders"
14 |     customers = "customers"
15 |     products = "products"
16 | 
17 | 
18 | class Column(str, Enum):
19 |     id = "id"
20 |     status = "status"
21 |     expected_delivery_date = "expected_delivery_date"
22 |     delivered_at = "delivered_at"
23 |     shipped_at = "shipped_at"
24 |     ordered_at = "ordered_at"
25 |     canceled_at = "canceled_at"
26 | 
27 | 
28 | class Operator(str, Enum):
29 |     eq = "="
30 |     gt = ">"
31 |     lt = "<"
32 |     le = "<="
33 |     ge = ">="
34 |     ne = "!="
35 | 
36 | 
37 | class OrderBy(str, Enum):
38 |     asc = "asc"
39 |     desc = "desc"
40 | 
41 | 
42 | class DynamicValue(BaseModel):
43 |     column_name: str
44 | 
45 | 
46 | class Condition(BaseModel):
47 |     column: str
48 |     operator: Operator
49 |     value: Union[str, int, DynamicValue]
50 | 
51 | 
52 | class Query(BaseModel):
53 |     table_name: Table
54 |     columns: list[Column]
55 |     conditions: list[Condition]
56 |     order_by: OrderBy
57 | 
58 | if __name__ == "__main__":
59 |     parser = argparse.ArgumentParser(description="Provide an API key to connect to OpenAI-compatible API.")
60 |     parser.add_argument("--api_key", required=True, help="API key for login")
61 |     args = parser.parse_args()
62 | 
63 |     stream = True
64 |     client = OpenAI(
65 |         base_url="http://localhost:8001/",
66 |         api_key=args.api_key
67 |     )
68 |     completion = client.beta.chat.completions.parse(
69 |         model="pgpt",
70 |         messages=[
71 |             {
72 |                 "role": "system",
73 |                 "content": "You are a helpful assistant. The current date is August 6, 2025. You help users query for the data they are looking for by calling the query function.",
74 |             },
75 |             {
76 |                 "role": "user",
77 |                 "content": "look up all my orders in may of last year that were fulfilled but not delivered on time",
78 |             },
79 |         ],
80 |         tools=[
81 |             openai.pydantic_function_tool(Query),
82 |         ],
83 |         extra_body={
84 |             "groups": [],
85 |             "newSession": True
86 |         }
87 |     )
88 | 
89 |     try:
90 |         results = json.loads(completion.choices[0].message.content)
91 |         print(json.dumps(results, indent=2))
92 |     except:
93 |         print(completion.choices[0].message.content)
```

--------------------------------------------------------------------------------
/clients/C# .Net/1.1 mcp_logout/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | class Program
 7 | {
 8 |     static void Main(string[] args)
 9 |     {
10 |         string serverIp = null;
11 |         int serverPort = 0;
12 |         string token = null;
13 | 
14 |         // Argumente parsen
15 |         for (int i = 0; i < args.Length; i++)
16 |         {
17 |             switch (args[i])
18 |             {
19 |                 case "--server-ip":
20 |                     serverIp = args[++i];
21 |                     break;
22 |                 case "--server-port":
23 |                     serverPort = int.Parse(args[++i]);
24 |                     break;
25 |                 case "--token":
26 |                     token = args[++i];
27 |                     break;
28 |             }
29 |         }
30 | 
31 |         // Überprüfen, ob alle Argumente angegeben wurden
32 |         if (string.IsNullOrEmpty(serverIp) || serverPort == 0 || string.IsNullOrEmpty(token))
33 |         {
34 |             Console.WriteLine("❌ ERROR: Missing required parameters.");
35 |             return;
36 |         }
37 | 
38 |         Console.WriteLine("🔒 Sending logout request...");
39 |         string response = SendLogoutRequest(serverIp, serverPort, token);
40 |         Console.WriteLine("Response from server:");
41 |         Console.WriteLine(response);
42 |     }
43 | 
44 |     static string SendLogoutRequest(string serverIp, int serverPort, string token)
45 |     {
46 |         // Erstelle das JSON-Payload
47 |         var payload = new
48 |         {
49 |             command = "logout",
50 |             token = token
51 |         };
52 | 
53 |         string payloadJson = JsonConvert.SerializeObject(payload);
54 | 
55 |         try
56 |         {
57 |             using (var client = new TcpClient(serverIp, serverPort))
58 |             using (var stream = client.GetStream())
59 |             {
60 |                 // Sende das Payload
61 |                 byte[] data = Encoding.UTF8.GetBytes(payloadJson);
62 |                 stream.Write(data, 0, data.Length);
63 | 
64 |                 // Antwort empfangen
65 |                 byte[] buffer = new byte[4096];
66 |                 int bytesRead = stream.Read(buffer, 0, buffer.Length);
67 | 
68 |                 string response = Encoding.UTF8.GetString(buffer, 0, bytesRead);
69 |                 return response;
70 |             }
71 |         }
72 |         catch (Exception ex)
73 |         {
74 |             return $"Error: {ex.Message}";
75 |         }
76 |     }
77 | }
78 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_logout.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | class Program
 7 | {
 8 |     static void Main(string[] args)
 9 |     {
10 |         string serverIp = null;
11 |         int serverPort = 0;
12 |         string token = null;
13 | 
14 |         // Argumente parsen
15 |         for (int i = 0; i < args.Length; i++)
16 |         {
17 |             switch (args[i])
18 |             {
19 |                 case "--server-ip":
20 |                     serverIp = args[++i];
21 |                     break;
22 |                 case "--server-port":
23 |                     serverPort = int.Parse(args[++i]);
24 |                     break;
25 |                 case "--token":
26 |                     token = args[++i];
27 |                     break;
28 |             }
29 |         }
30 | 
31 |         // Überprüfen, ob alle Argumente angegeben wurden
32 |         if (string.IsNullOrEmpty(serverIp) || serverPort == 0 || string.IsNullOrEmpty(token))
33 |         {
34 |             Console.WriteLine("❌ ERROR: Missing required parameters.");
35 |             return;
36 |         }
37 | 
38 |         Console.WriteLine("🔒 Sending logout request...");
39 |         string response = SendLogoutRequest(serverIp, serverPort, token);
40 |         Console.WriteLine("Response from server:");
41 |         Console.WriteLine(response);
42 |     }
43 | 
44 |     static string SendLogoutRequest(string serverIp, int serverPort, string token)
45 |     {
46 |         // Erstelle das JSON-Payload
47 |         var payload = new
48 |         {
49 |             command = "logout",
50 |             token = token
51 |         };
52 | 
53 |         string payloadJson = JsonConvert.SerializeObject(payload);
54 | 
55 |         try
56 |         {
57 |             using (var client = new TcpClient(serverIp, serverPort))
58 |             using (var stream = client.GetStream())
59 |             {
60 |                 // Sende das Payload
61 |                 byte[] data = Encoding.UTF8.GetBytes(payloadJson);
62 |                 stream.Write(data, 0, data.Length);
63 | 
64 |                 // Antwort empfangen
65 |                 byte[] buffer = new byte[4096];
66 |                 int bytesRead = stream.Read(buffer, 0, buffer.Length);
67 | 
68 |                 string response = Encoding.UTF8.GetString(buffer, 0, bytesRead);
69 |                 return response;
70 |             }
71 |         }
72 |         catch (Exception ex)
73 |         {
74 |             return $"Error: {ex.Message}";
75 |         }
76 |     }
77 | }
78 | 
```

--------------------------------------------------------------------------------
/clients/Go/2.2 mcp_get_chat_info/MCPGetChatInfoClient.go:
--------------------------------------------------------------------------------

```go
  1 | package main
  2 | 
  3 | import (
  4 | 	"bytes"
  5 | 	"encoding/json"
  6 | 	"errors"
  7 | 	"flag"
  8 | 	"fmt"
  9 | 	"io"
 10 | 	"net"
 11 | 	"os"
 12 | )
 13 | 
 14 | type GenericPayload struct {
 15 | 	Command   string                 `json:"command"`
 16 | 	Token     string                 `json:"token"`
 17 | 	Arguments map[string]interface{} `json:"arguments"`
 18 | }
 19 | 
 20 | func sendRequest(serverIP string, serverPort int, payload GenericPayload) (map[string]interface{}, error) {
 21 | 	// Convert the payload to JSON
 22 | 	payloadJSON, err := json.Marshal(payload)
 23 | 	if err != nil {
 24 | 		return nil, err
 25 | 	}
 26 | 
 27 | 	// Create a connection to the server
 28 | 	conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", serverIP, serverPort))
 29 | 	if err != nil {
 30 | 		return nil, err
 31 | 	}
 32 | 	defer conn.Close()
 33 | 
 34 | 	// Send the request
 35 | 	_, err = conn.Write(payloadJSON)
 36 | 	if err != nil {
 37 | 		return nil, err
 38 | 	}
 39 | 
 40 | 	// Receive the response
 41 | 	var responseBuffer bytes.Buffer
 42 | 	buf := make([]byte, 4096)
 43 | 	for {
 44 | 		n, err := conn.Read(buf)
 45 | 		if err != nil {
 46 | 			if errors.Is(err, io.EOF) {
 47 | 				break
 48 | 			}
 49 | 			return nil, err
 50 | 		}
 51 | 		responseBuffer.Write(buf[:n])
 52 | 		if n < 4096 {
 53 | 			break
 54 | 		}
 55 | 	}
 56 | 
 57 | 	// Decode the response
 58 | 	var response map[string]interface{}
 59 | 	err = json.Unmarshal(responseBuffer.Bytes(), &response)
 60 | 	if err != nil {
 61 | 		return nil, err
 62 | 	}
 63 | 
 64 | 	return response, nil
 65 | }
 66 | 
 67 | func main() {
 68 | 	serverIP := flag.String("server-ip", "", "IP address of the MCP server")
 69 | 	serverPort := flag.Int("server-port", 0, "Port number of the MCP server")
 70 | 	token := flag.String("token", "", "Authentication token")
 71 | 	chatID := flag.String("chat-id", "", "ID of the conversation")
 72 | 
 73 | 	flag.Parse()
 74 | 
 75 | 	if *serverIP == "" || *serverPort == 0 || *token == "" || *chatID == "" {
 76 | 		fmt.Println("❌ ERROR: All flags are required.")
 77 | 		flag.Usage()
 78 | 		os.Exit(1)
 79 | 	}
 80 | 
 81 | 	// Prepare the payload
 82 | 	payload := GenericPayload{
 83 | 		Command: "get_chat_info",
 84 | 		Token:   *token,
 85 | 		Arguments: map[string]interface{}{
 86 | 			"chatId": *chatID,
 87 | 		},
 88 | 	}
 89 | 
 90 | 	fmt.Println("📤 Sending request...")
 91 | 	response, err := sendRequest(*serverIP, *serverPort, payload)
 92 | 	if err != nil {
 93 | 		fmt.Printf("❌ ERROR: %v\n", err)
 94 | 		os.Exit(1)
 95 | 	}
 96 | 
 97 | 	responseJSON, err := json.MarshalIndent(response, "", "  ")
 98 | 	if err != nil {
 99 | 		fmt.Printf("❌ ERROR: %v\n", err)
100 | 		os.Exit(1)
101 | 	}
102 | 
103 | 	fmt.Println("✔️ Response:")
104 | 	fmt.Println(string(responseJSON))
105 | }
106 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.0 mcp_list_groups/obj/mcp_list_groups.csproj.nuget.dgspec.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "format": 1,
 3 |   "restore": {
 4 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\mcp_list_groups\\mcp_list_groups.csproj": {}
 5 |   },
 6 |   "projects": {
 7 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\mcp_list_groups\\mcp_list_groups.csproj": {
 8 |       "version": "1.0.0",
 9 |       "restore": {
10 |         "projectUniqueName": "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\mcp_list_groups\\mcp_list_groups.csproj",
11 |         "projectName": "mcp_list_groups",
12 |         "projectPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\mcp_list_groups\\mcp_list_groups.csproj",
13 |         "packagesPath": "C:\\Users\\uwuertz\\.nuget\\packages\\",
14 |         "outputPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\mcp_list_groups\\obj\\",
15 |         "projectStyle": "PackageReference",
16 |         "configFilePaths": [
17 |           "C:\\Users\\uwuertz\\AppData\\Roaming\\NuGet\\NuGet.Config"
18 |         ],
19 |         "originalTargetFrameworks": [
20 |           "net9.0"
21 |         ],
22 |         "sources": {
23 |           "https://api.nuget.org/v3/index.json": {}
24 |         },
25 |         "frameworks": {
26 |           "net9.0": {
27 |             "targetAlias": "net9.0",
28 |             "projectReferences": {}
29 |           }
30 |         },
31 |         "warningProperties": {
32 |           "warnAsError": [
33 |             "NU1605"
34 |           ]
35 |         },
36 |         "restoreAuditProperties": {
37 |           "enableAudit": "true",
38 |           "auditLevel": "low",
39 |           "auditMode": "direct"
40 |         },
41 |         "SdkAnalysisLevel": "9.0.100"
42 |       },
43 |       "frameworks": {
44 |         "net9.0": {
45 |           "targetAlias": "net9.0",
46 |           "dependencies": {
47 |             "Newtonsoft.Json": {
48 |               "target": "Package",
49 |               "version": "[13.0.3, )"
50 |             }
51 |           },
52 |           "imports": [
53 |             "net461",
54 |             "net462",
55 |             "net47",
56 |             "net471",
57 |             "net472",
58 |             "net48",
59 |             "net481"
60 |           ],
61 |           "assetTargetFallback": true,
62 |           "warn": true,
63 |           "frameworkReferences": {
64 |             "Microsoft.NETCore.App": {
65 |               "privateAssets": "all"
66 |             }
67 |           },
68 |           "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.101/PortableRuntimeIdentifierGraph.json"
69 |         }
70 |       }
71 |     }
72 |   }
73 | }
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.3 mcp_edit_source/obj/mcp_edit_source.csproj.nuget.dgspec.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "format": 1,
 3 |   "restore": {
 4 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\3.3 mcp_edit_source\\mcp_edit_source.csproj": {}
 5 |   },
 6 |   "projects": {
 7 |     "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\3.3 mcp_edit_source\\mcp_edit_source.csproj": {
 8 |       "version": "1.0.0",
 9 |       "restore": {
10 |         "projectUniqueName": "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\3.3 mcp_edit_source\\mcp_edit_source.csproj",
11 |         "projectName": "mcp_edit_source",
12 |         "projectPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\3.3 mcp_edit_source\\mcp_edit_source.csproj",
13 |         "packagesPath": "C:\\Users\\uwuertz\\.nuget\\packages\\",
14 |         "outputPath": "C:\\Users\\uwuertz\\AI\\mcp-client\\C# .Net\\3.3 mcp_edit_source\\obj\\",
15 |         "projectStyle": "PackageReference",
16 |         "configFilePaths": [
17 |           "C:\\Users\\uwuertz\\AppData\\Roaming\\NuGet\\NuGet.Config"
18 |         ],
19 |         "originalTargetFrameworks": [
20 |           "net9.0"
21 |         ],
22 |         "sources": {
23 |           "https://api.nuget.org/v3/index.json": {}
24 |         },
25 |         "frameworks": {
26 |           "net9.0": {
27 |             "targetAlias": "net9.0",
28 |             "projectReferences": {}
29 |           }
30 |         },
31 |         "warningProperties": {
32 |           "warnAsError": [
33 |             "NU1605"
34 |           ]
35 |         },
36 |         "restoreAuditProperties": {
37 |           "enableAudit": "true",
38 |           "auditLevel": "low",
39 |           "auditMode": "direct"
40 |         },
41 |         "SdkAnalysisLevel": "9.0.100"
42 |       },
43 |       "frameworks": {
44 |         "net9.0": {
45 |           "targetAlias": "net9.0",
46 |           "dependencies": {
47 |             "Newtonsoft.Json": {
48 |               "target": "Package",
49 |               "version": "[13.0.3, )"
50 |             }
51 |           },
52 |           "imports": [
53 |             "net461",
54 |             "net462",
55 |             "net47",
56 |             "net471",
57 |             "net472",
58 |             "net48",
59 |             "net481"
60 |           ],
61 |           "assetTargetFallback": true,
62 |           "warn": true,
63 |           "frameworkReferences": {
64 |             "Microsoft.NETCore.App": {
65 |               "privateAssets": "all"
66 |             }
67 |           },
68 |           "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.101/PortableRuntimeIdentifierGraph.json"
69 |         }
70 |       }
71 |     }
72 |   }
73 | }
```

--------------------------------------------------------------------------------
/security/generate_decrypted_password.js:
--------------------------------------------------------------------------------

```javascript
 1 | import fs from 'fs';
 2 | import crypto from 'crypto';
 3 | import readline from 'readline';
 4 | 
 5 | // Function to load the private key
 6 | function loadPrivateKey(path) {
 7 |   if (!path) {
 8 |     throw new Error(
 9 |       `No private key path provided. Please specify the path to the RSA-private key as an argument.
10 |        Example usage: node security/generate_decrypted_password.js ~/.ssh/id_rsa`
11 |     );
12 |   }
13 |   try {
14 |     return fs.readFileSync(path, 'utf8');
15 |   } catch (err) {
16 |     throw new Error(`Error reading private key at "${path}": ${err.message}`);
17 |   }
18 | }
19 | 
20 | // Function for decryption (uses RSA-OAEP)
21 | function decryptWithPrivateKey(encryptedData, privateKeyPem) {
22 |   const ciphertext = Buffer.from(encryptedData, 'base64');
23 |   const keyObj = crypto.createPrivateKey(privateKeyPem);
24 | 
25 |   const tryOaep = (hash) =>
26 |     crypto.privateDecrypt(
27 |       {
28 |         key: keyObj,
29 |         padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,
30 |         oaepHash: hash, // try sha256 first, sha1 fallback if legacy
31 |       },
32 |       ciphertext
33 |     );
34 | 
35 |   try {
36 |     return tryOaep('sha256').toString('utf8');
37 |   } catch (e256) {
38 |     try {
39 |       return tryOaep('sha1').toString('utf8');
40 |     } catch (e1) {
41 |       throw new Error(
42 |         `Decryption failed with RSA-OAEP (tried SHA-256 and SHA-1). ` +
43 |           `Ensure the ciphertext was created with RSA-OAEP using the same hash. ` +
44 |           `Errors: [${e256.message}] / [${e1.message}]`
45 |       );
46 |     }
47 |   }
48 | }
49 | 
50 | // Function to prompt for encrypted password input
51 | function askEncryptedPassword(question) {
52 |   const rl = readline.createInterface({
53 |     input: process.stdin,
54 |     output: process.stdout,
55 |     terminal: true,
56 |   });
57 |   return new Promise((resolve) => {
58 |     rl.question(question, (answer) => {
59 |       rl.close();
60 |       resolve(answer.trim());
61 |     });
62 |   });
63 | }
64 | 
65 | // Main function
66 | async function main() {
67 |   const privateKeyPath = process.argv[2]; // private key path as CLI arg
68 | 
69 |   try {
70 |     const privateKey = loadPrivateKey(privateKeyPath);
71 |     const encryptedPassword = await askEncryptedPassword('Please enter the encrypted password (base64): ');
72 |     const decryptedPassword = decryptWithPrivateKey(encryptedPassword, privateKey);
73 |     console.log('Decrypted Password:', decryptedPassword);
74 |   } catch (err) {
75 |     console.error('Error:', err.message);
76 |     process.exitCode = 1;
77 |   }
78 | }
79 | 
80 | main();
81 | 
```

--------------------------------------------------------------------------------
/agents/OpenAI_Compatible_API_Agent/Python/client_tests/openai_test_client_structured.py:
--------------------------------------------------------------------------------

```python
 1 | import argparse
 2 | from openai import OpenAI
 3 | import json
 4 | 
 5 | if __name__ == "__main__":
 6 |     parser = argparse.ArgumentParser(description="Provide an API key to connect to OpenAI-compatible API.")
 7 |     parser.add_argument("--api_key", required=True, help="API key for login")
 8 |     args = parser.parse_args()
 9 | 
10 |     stream = False
11 | 
12 | 
13 |     # Initialize OpenAI client that points to the local LM Studio server
14 |     client = OpenAI(
15 |         base_url="http://localhost:8001/",
16 |         api_key=args.api_key
17 |     )
18 | 
19 |     # Define the conversation with the AI
20 |     messages = [
21 |         {"role": "system", "content": "You are a helpful AI assistant."},
22 |         {"role": "user", "content": "Create 5-10 fictional characters"}
23 |     ]
24 | 
25 |     # Define the expected response structure
26 |     character_schema = {
27 |         "type": "json_schema",
28 |         "json_schema": {
29 |             "name": "characters",
30 |             "schema": {
31 |                 "type": "object",
32 |                 "properties": {
33 |                     "characters": {
34 |                         "type": "array",
35 |                         "items": {
36 |                             "type": "object",
37 |                             "properties": {
38 |                                 "name": {"type": "string"},
39 |                                 "occupation": {"type": "string"},
40 |                                 "personality": {"type": "string"},
41 |                                 "background": {"type": "string"}
42 |                             },
43 |                             "required": ["name", "occupation", "personality", "background"]
44 |                         },
45 |                         "minItems": 1,
46 |                     }
47 |                 },
48 |                 "required": ["characters"]
49 |             },
50 |         }
51 |     }
52 | 
53 |     # Get response from AI
54 |     response = client.chat.completions.create(
55 |         model="pgpt",
56 |         messages=messages,
57 |         stream=stream,
58 |         response_format=character_schema,
59 |         extra_body={
60 |             "groups": [],
61 |             "newSession": True
62 |         }
63 |     )
64 | 
65 |     # Parse and display the results
66 |     #print(response.choices[0].message.content)
67 | 
68 |     if stream:
69 |         for chunk in response:
70 |             print(chunk.choices[0].delta.content or "")
71 | 
72 |     else:
73 |         results = json.loads(response.choices[0].message.content)
74 |         print(json.dumps(results, indent=2))
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/moondream/server.py:
--------------------------------------------------------------------------------

```python
 1 | import gzip
 2 | import io
 3 | import os
 4 | import sys
 5 | 
 6 | import requests
 7 | from mcp.server import FastMCP
 8 | 
 9 | sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
10 | sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
11 | 
12 | mcp = FastMCP("Caption or analyze a given image based on a prompt")
13 | md_model = None
14 | 
15 | @mcp.tool()
16 | def process_image(prompt:str, file_path:str) -> str:
17 |     """Describe an image based on a prompt.
18 | 
19 |        Args:
20 |            prompt: Text prompt describing how to analyze the image
21 |            file_path: Filepath to the image to analyze
22 |        """
23 | 
24 |     import moondream as md
25 |     from PIL import Image
26 |     global md_model
27 | 
28 |     # todo check if model exists, download on demand. make model selectable.
29 |     if md_model is None:
30 |         # md_model = md.vl(model="./clients/Gradio/models/moondream-0_5b-int8.mf")
31 | 
32 |         # URL of the zip file
33 |         zip_url = 'https://huggingface.co/vikhyatk/moondream2/resolve/9dddae84d54db4ac56fe37817aeaeb502ed083e2/moondream-2b-int8.mf.gz?download=true'
34 | 
35 |         # Folder to extract into
36 |         extract_to = './models'
37 | 
38 |         # Target file to check
39 |         target_file = os.path.join(extract_to, 'moondream-2b-int8.mf')
40 | 
41 |         # Only proceed if the target file doesn't exist
42 |         if not os.path.exists(target_file):
43 |             print("moondream-2b-int8.mf not found. Downloading and extracting...")
44 |             # Make sure the extraction folder exists
45 |             os.makedirs(extract_to, exist_ok=True)
46 | 
47 |             # Download the zip
48 |             response = requests.get(zip_url)
49 |             response.raise_for_status()
50 | 
51 |             # Extract it
52 |             # Decompress and write the file
53 |             with gzip.open(io.BytesIO(response.content), 'rb') as f_in:
54 |                 with open(target_file, 'wb') as f_out:
55 |                     f_out.write(f_in.read())
56 | 
57 |             print(f"Done! Extracted to: {extract_to}")
58 | 
59 |         md_model = md.vl(model="./models/moondream-2b-int8.mf")
60 | 
61 |     # Load and process image
62 |     image = Image.open(file_path)
63 |     encoded_image = md_model.encode_image(image)
64 | 
65 |     # Generate caption
66 |     # caption = model.caption(encoded_image)["caption"]
67 |     # print("Caption:", caption)
68 | 
69 |     # Ask questions
70 |     result = md_model.query(encoded_image, prompt)["answer"]
71 |     print("Answer:", result)
72 |     return result
73 | 
74 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.0 mcp_list_groups/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPListGroupsClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 3)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 | 
22 |             Console.WriteLine("📄 Abrufen der Gruppen...");
23 | 
24 |             var payload = new
25 |             {
26 |                 command = "list_groups",
27 |                 token = token
28 |             };
29 | 
30 |             string response = SendRequest(serverIp, serverPort, payload);
31 | 
32 |             Console.WriteLine("✔️ Antwort:");
33 |             Console.WriteLine(response);
34 |         }
35 | 
36 |         static string GetArgument(string[] args, string key)
37 |         {
38 |             int index = Array.IndexOf(args, key);
39 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
40 |         }
41 | 
42 |         static string SendRequest(string serverIp, int serverPort, object payload)
43 |         {
44 |             string payloadJson = JsonConvert.SerializeObject(payload);
45 | 
46 |             try
47 |             {
48 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
49 |                 {
50 |                     NetworkStream stream = client.GetStream();
51 | 
52 |                     // Senden der Nutzdaten
53 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
54 |                     stream.Write(data, 0, data.Length);
55 | 
56 |                     // Empfang der Antwort
57 |                     byte[] buffer = new byte[4096];
58 |                     int bytesRead;
59 |                     StringBuilder response = new StringBuilder();
60 | 
61 |                     do
62 |                     {
63 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
64 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
65 |                     } while (bytesRead == buffer.Length);
66 | 
67 |                     return response.ToString();
68 |                 }
69 |             }
70 |             catch (Exception e)
71 |             {
72 |                 return $"Error: {e.Message}";
73 |             }
74 |         }
75 |     }
76 | }
77 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_list_groups.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPListGroupsClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 3)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 | 
22 |             Console.WriteLine("📄 Abrufen der Gruppen...");
23 | 
24 |             var payload = new
25 |             {
26 |                 command = "list_groups",
27 |                 token = token
28 |             };
29 | 
30 |             string response = SendRequest(serverIp, serverPort, payload);
31 | 
32 |             Console.WriteLine("✔️ Antwort:");
33 |             Console.WriteLine(response);
34 |         }
35 | 
36 |         static string GetArgument(string[] args, string key)
37 |         {
38 |             int index = Array.IndexOf(args, key);
39 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
40 |         }
41 | 
42 |         static string SendRequest(string serverIp, int serverPort, object payload)
43 |         {
44 |             string payloadJson = JsonConvert.SerializeObject(payload);
45 | 
46 |             try
47 |             {
48 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
49 |                 {
50 |                     NetworkStream stream = client.GetStream();
51 | 
52 |                     // Senden der Nutzdaten
53 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
54 |                     stream.Write(data, 0, data.Length);
55 | 
56 |                     // Empfang der Antwort
57 |                     byte[] buffer = new byte[4096];
58 |                     int bytesRead;
59 |                     StringBuilder response = new StringBuilder();
60 | 
61 |                     do
62 |                     {
63 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
64 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
65 |                     } while (bytesRead == buffer.Length);
66 | 
67 |                     return response.ToString();
68 |                 }
69 |             }
70 |             catch (Exception e)
71 |             {
72 |                 return $"Error: {e.Message}";
73 |             }
74 |         }
75 |     }
76 | }
77 | 
```

--------------------------------------------------------------------------------
/clients/Java/1.1 mcp_logout/MCPLogoutClient.java:
--------------------------------------------------------------------------------

```java
 1 | import org.json.JSONObject;
 2 | 
 3 | import java.io.IOException;
 4 | import java.io.InputStream;
 5 | import java.io.OutputStream;
 6 | import java.net.Socket;
 7 | import java.nio.charset.StandardCharsets;
 8 | 
 9 | public class MCPLogoutClient {
10 | 
11 |     public static void main(String[] args) {
12 |         String serverIp = null;
13 |         int serverPort = 0;
14 |         String token = null;
15 | 
16 |         // Argumente parsen
17 |         for (int i = 0; i < args.length; i++) {
18 |             switch (args[i]) {
19 |                 case "--server-ip":
20 |                     serverIp = args[++i];
21 |                     break;
22 |                 case "--server-port":
23 |                     serverPort = Integer.parseInt(args[++i]);
24 |                     break;
25 |                 case "--token":
26 |                     token = args[++i];
27 |                     break;
28 |             }
29 |         }
30 | 
31 |         // Überprüfen, ob alle Argumente angegeben wurden
32 |         if (serverIp == null || serverPort == 0 || token == null) {
33 |             System.out.println("❌ ERROR: Missing required parameters.");
34 |             return;
35 |         }
36 | 
37 |         System.out.println("🔒 Sending logout request...");
38 |         String response = sendLogoutRequest(serverIp, serverPort, token);
39 |         System.out.println("Response from server:");
40 |         System.out.println(response);
41 |     }
42 | 
43 |     private static String sendLogoutRequest(String serverIp, int serverPort, String token) {
44 |         // JSON-Payload erstellen
45 |         JSONObject payload = new JSONObject();
46 |         payload.put("command", "logout");
47 |         payload.put("token", token);
48 | 
49 |         // In String umwandeln
50 |         String payloadJson = payload.toString();
51 | 
52 |         try (Socket client = new Socket(serverIp, serverPort)) {
53 |             // OutputStream holen und Daten senden
54 |             OutputStream out = client.getOutputStream();
55 |             byte[] data = payloadJson.getBytes(StandardCharsets.UTF_8);
56 |             out.write(data);
57 |             out.flush();
58 | 
59 |             // Antwort empfangen
60 |             InputStream in = client.getInputStream();
61 |             byte[] buffer = new byte[4096];
62 |             int bytesRead = in.read(buffer);
63 |             if (bytesRead == -1) {
64 |                 return "❌ ERROR: No response from server.";
65 |             }
66 | 
67 |             return new String(buffer, 0, bytesRead, StandardCharsets.UTF_8);
68 | 
69 |         } catch (IOException ex) {
70 |             return "Error: " + ex.getMessage();
71 |         }
72 |     }
73 | }
74 | 
```

--------------------------------------------------------------------------------
/clients/Go/3.0 mcp_create_source/MCPCreateSourceClient.go:
--------------------------------------------------------------------------------

```go
  1 | package main
  2 | 
  3 | import (
  4 | 	"bytes"
  5 | 	"encoding/json"
  6 | 	"errors"
  7 | 	"flag"
  8 | 	"fmt"
  9 | 	"io"
 10 | 	"net"
 11 | 	"os"
 12 | )
 13 | 
 14 | type CreateSourcePayload struct {
 15 | 	Command   string                 `json:"command"`
 16 | 	Token     string                 `json:"token"`
 17 | 	Arguments map[string]interface{} `json:"arguments"`
 18 | }
 19 | 
 20 | func sendCreateSourceRequest(serverIP string, serverPort int, token, name, content string, groups []string) (string, error) {
 21 | 	// Prepare the request payload
 22 | 	payload := CreateSourcePayload{
 23 | 		Command: "create_source",
 24 | 		Token:   token,
 25 | 		Arguments: map[string]interface{}{
 26 | 			"name":    name,
 27 | 			"content": content,
 28 | 			"groups":  groups,
 29 | 		},
 30 | 	}
 31 | 
 32 | 	// Convert the payload to JSON
 33 | 	payloadJSON, err := json.Marshal(payload)
 34 | 	if err != nil {
 35 | 		return "", err
 36 | 	}
 37 | 
 38 | 	// Create a connection to the server
 39 | 	conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", serverIP, serverPort))
 40 | 	if err != nil {
 41 | 		return "", err
 42 | 	}
 43 | 	defer conn.Close()
 44 | 
 45 | 	// Send the request
 46 | 	_, err = conn.Write(payloadJSON)
 47 | 	if err != nil {
 48 | 		return "", err
 49 | 	}
 50 | 
 51 | 	// Receive the response
 52 | 	var responseBuffer bytes.Buffer
 53 | 	buf := make([]byte, 4096)
 54 | 	for {
 55 | 		n, err := conn.Read(buf)
 56 | 		if err != nil {
 57 | 			if errors.Is(err, io.EOF) {
 58 | 				break
 59 | 			}
 60 | 			return "", err
 61 | 		}
 62 | 		responseBuffer.Write(buf[:n])
 63 | 		if n < 4096 {
 64 | 			break
 65 | 		}
 66 | 	}
 67 | 
 68 | 	return responseBuffer.String(), nil
 69 | }
 70 | 
 71 | func main() {
 72 | 	serverIP := flag.String("server-ip", "", "IP address of the MCP server")
 73 | 	serverPort := flag.Int("server-port", 0, "Port number of the MCP server")
 74 | 	token := flag.String("token", "", "Authentication token")
 75 | 	name := flag.String("name", "", "Name of the new source")
 76 | 	content := flag.String("content", "", "Content to be formatted as markdown")
 77 | 	groups := flag.String("groups", "", "Comma-separated list of groups to assign the source to")
 78 | 
 79 | 	flag.Parse()
 80 | 
 81 | 	if *serverIP == "" || *serverPort == 0 || *token == "" || *name == "" || *content == "" {
 82 | 		fmt.Println("❌ ERROR: All flags except 'groups' are required.")
 83 | 		flag.Usage()
 84 | 		os.Exit(1)
 85 | 	}
 86 | 
 87 | 	// Convert groups to a slice
 88 | 	groupList := []string{}
 89 | 	if *groups != "" {
 90 | 		groupList = append(groupList, *groups)
 91 | 	}
 92 | 
 93 | 	// Send the request to create the source
 94 | 	fmt.Println("📤 Sending request to create source...")
 95 | 	response, err := sendCreateSourceRequest(*serverIP, *serverPort, *token, *name, *content, groupList)
 96 | 	if err != nil {
 97 | 		fmt.Printf("❌ ERROR: %v\n", err)
 98 | 		os.Exit(1)
 99 | 	}
100 | 
101 | 	fmt.Println("✔️ Response from server:")
102 | 	fmt.Println(response)
103 | }
104 | 
```

--------------------------------------------------------------------------------
/clients/Python/1.1 mcp_logout/MCPLogoutClient.py:
--------------------------------------------------------------------------------

```python
 1 | import argparse
 2 | import socket
 3 | import ssl
 4 | import json
 5 | 
 6 | def send_logout_request(server_ip, server_port, token, use_ssl=True, accept_self_signed=False):
 7 |     """
 8 |     Sends a logout request to the MCP server.
 9 |     """
10 |     payload = {
11 |         "command": "logout",
12 |         "token": token
13 |     }
14 | 
15 |     payload_json = json.dumps(payload)
16 |     
17 |     raw_socket = None
18 |     client_socket = None
19 | 
20 |     try:
21 |         raw_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
22 |         raw_socket.settimeout(10)
23 | 
24 |         if use_ssl:
25 |             context = ssl.create_default_context()
26 |             if accept_self_signed:
27 |                 context.check_hostname = False
28 |                 context.verify_mode = ssl.CERT_NONE
29 |             client_socket = context.wrap_socket(raw_socket, server_hostname=server_ip)
30 |         else:
31 |             client_socket = raw_socket
32 |         
33 |         client_socket.connect((server_ip, server_port))
34 |         client_socket.sendall(payload_json.encode('utf-8'))
35 | 
36 |         response = b""
37 |         while True:
38 |             part = client_socket.recv(4096)
39 |             if not part:
40 |                 break
41 |             response += part
42 | 
43 |         return response.decode('utf-8')
44 |     except ssl.SSLError:
45 |         return "Error: The server requires TLS encryption. Please enable SSL/TLS."
46 |     except Exception as e:
47 |         return f"Error: {e}"
48 |     
49 |     finally:
50 |         if client_socket is not None:
51 |             try:
52 |                 client_socket.shutdown(socket.SHUT_RDWR)
53 |             except:
54 |                 pass
55 |             client_socket.close()
56 | 
57 | if __name__ == "__main__":
58 |     parser = argparse.ArgumentParser(description="Send a logout request to the MCP server.")
59 |     parser.add_argument("--server-ip", required=True, help="IP address of the MCP server")
60 |     parser.add_argument("--server-port", type=int, required=True, help="Port number of the MCP server")
61 |     parser.add_argument("--token", required=True, help="Authentication token")
62 |     parser.add_argument("--use-ssl", action="store_true", help="Connect using SSL/TLS")
63 |     parser.add_argument("--accept-self-signed", action="store_true", help="Accept self-signed certificates (disable certificate verification)")
64 | 
65 |     args = parser.parse_args()
66 | 
67 |     response = send_logout_request(
68 |         args.server_ip,
69 |         args.server_port,
70 |         args.token,
71 |         use_ssl=args.use_ssl,
72 |         accept_self_signed=args.accept_self_signed
73 |     )
74 |     print("Response from server:", response)
75 | 
```

--------------------------------------------------------------------------------
/agents/MCP-Client/Python/system_prompt_generator.py:
--------------------------------------------------------------------------------

```python
 1 | import json
 2 | 
 3 | 
 4 | class SystemPromptGenerator:
 5 |     """
 6 |     A class for generating system prompts dynamically based on tools JSON and user inputs.
 7 |     """
 8 | 
 9 |     def __init__(self):
10 |         """
11 |         Initialize the SystemPromptGenerator with a default system prompt template.
12 |         """
13 |         self.template = """
14 |         In this environment you have access to a set of tools you can use to answer the user's question.
15 |         {{ FORMATTING INSTRUCTIONS }}
16 |         String and scalar parameters should be specified as is, while lists and objects should use JSON format. Note that spaces for string values are not stripped. The output is not expected to be valid XML and is parsed with regular expressions.
17 |         Here are the functions available in JSONSchema format:
18 |         {{ TOOL DEFINITIONS IN JSON SCHEMA }}
19 |         {{ USER SYSTEM PROMPT }}
20 |         {{ TOOL CONFIGURATION }}
21 |         """
22 |         self.default_user_system_prompt = "You are an intelligent assistant capable of using tools to solve user queries effectively."
23 |         self.default_tool_config = "No additional configuration is required."
24 | 
25 |     def generate_prompt(
26 |         self, tools: dict, user_system_prompt: str = None, tool_config: str = None
27 |     ) -> str:
28 |         """
29 |         Generate a system prompt based on the provided tools JSON, user prompt, and tool configuration.
30 | 
31 |         Args:
32 |             tools (dict): The tools JSON containing definitions of the available tools.
33 |             user_system_prompt (str): A user-provided description or instruction for the assistant (optional).
34 |             tool_config (str): Additional tool configuration information (optional).
35 | 
36 |         Returns:
37 |             str: The dynamically generated system prompt.
38 |         """
39 | 
40 |         # set the user system prompt
41 |         user_system_prompt = user_system_prompt or self.default_user_system_prompt
42 | 
43 |         # set the tools config
44 |         tool_config = tool_config or self.default_tool_config
45 | 
46 |         # get the tools schema
47 |         tools_json_schema = json.dumps(tools, indent=2)
48 | 
49 |         # perform replacements
50 |         prompt = self.template.replace(
51 |             "{{ TOOL DEFINITIONS IN JSON SCHEMA }}", tools_json_schema
52 |         )
53 |         prompt = prompt.replace("{{ FORMATTING INSTRUCTIONS }}", "")
54 |         prompt = prompt.replace("{{ USER SYSTEM PROMPT }}", user_system_prompt)
55 |         prompt = prompt.replace("{{ TOOL CONFIGURATION }}", tool_config)
56 | 
57 |         # return the prompt
58 |         return prompt
59 | 
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/demo-mcp-server/demo-tools-stdio.js:
--------------------------------------------------------------------------------

```javascript
 1 | import { createHTTPServer } from '@trpc/server/adapters/standalone';
 2 | import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
 3 | import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
 4 | import { z } from "zod";
 5 | 
 6 | //Import functions from tools folder
 7 | import {calculator} from "./tools/calculator.js"
 8 | import {weather} from "./tools/weather.js"
 9 | import {bitcoin, gold} from "./tools/assets.js"
10 | 
11 | //Basic config
12 | const name = "demo-tools-stdio"
13 | const version = "0.0.1"
14 | 
15 | const config = {
16 |   name: name,
17 |   version: version,
18 |   capabilities: {
19 |     logging: {},
20 |   },
21 | }
22 | 
23 | // Create an MCP server for Stdio
24 | const server = new McpServer(config);
25 | 
26 | 
27 | // Add any tool and its paramters / function by calling add_tool
28 | await add_tool("calculator",
29 |          "Perform basic calculations. Add, subtract, multiply, divide. Invoke this tool every time you need to perform a calculation.",
30 |          {operation: z.enum(["add", "subtract", "multiply", "divide"]), a: z.string(), b: z.string()},
31 |          calculator)
32 | 
33 | await add_tool("get_weather",
34 |          "Fetch the current weather for a specific location. Invoke this tool every time you need to give information on the weather.",
35 |         {location: z.string()},
36 |          weather)
37 | 
38 | await add_tool("get_gold_price",
39 |          "Get the current price of Gold. Invoke this every time the user asks for the price of Gold",
40 |         {name: z.string()},
41 |          gold)
42 | 
43 | await add_tool("get_bitcoin_price",
44 |          "Get the current price of Bitcoin. Invoke this every time the user asks for the price of Bitcoin",
45 |         {name: z.string()},
46 |          bitcoin)
47 | 
48 | async function add_tool(name, description, schema, func){
49 | // Add tool will add the tool to both, local and remote access systems
50 |     server.tool(name, description, schema,
51 |         async (args) => {
52 |             return await func(args)
53 |         });
54 | }
55 | 
56 | //Connection
57 | 
58 | // Connect stdio
59 | const transport = new StdioServerTransport();
60 | await server.connect(transport);
61 | 
62 | //SSE
63 | /*const app = express();
64 | 
65 | app.get("/sse", async (req, res) => {
66 |   const transport = new SSEServerTransport("/messages", res);
67 |   await server.connect(transport);
68 | });
69 | 
70 | app.post("/messages", async (req, res) => {
71 |   // Note: to support multiple simultaneous connections, these messages will
72 |   // need to be routed to a specific matching transport. (This logic isn't
73 |   // implemented here, for simplicity.)
74 |   await transport.handlePostMessage(req, res);
75 | });
76 | 
77 | app.listen(3001);*/
```

--------------------------------------------------------------------------------
/clients/C# .Net/1.0 mcp_login/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | // Using CommandLineParser for cleaner argument parsing
 2 | using System;
 3 | using Newtonsoft.Json;
 4 | 
 5 | class Program
 6 | {
 7 |     static void Main(string[] args)
 8 |     {
 9 |         string serverIp = null;
10 |         int serverPort = 0;
11 |         string email = null;
12 |         string password = null;
13 | 
14 |         // Loop through args and parse them manually (or use a parser library like CommandLineParser)
15 |         for (int i = 0; i < args.Length; i++)
16 |         {
17 |             switch (args[i])
18 |             {
19 |                 case "--server-ip":
20 |                     serverIp = args[++i];
21 |                     break;
22 |                 case "--server-port":
23 |                     serverPort = int.Parse(args[++i]);
24 |                     break;
25 |                 case "--email":
26 |                     email = args[++i];
27 |                     break;
28 |                 case "--password":
29 |                     password = args[++i];
30 |                     break;
31 |             }
32 |         }
33 | 
34 |         if (string.IsNullOrEmpty(serverIp) || serverPort == 0 || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password))
35 |         {
36 |             Console.WriteLine("❌ ERROR: Missing required parameters.");
37 |             return;
38 |         }
39 | 
40 |         Console.WriteLine("🔐 Logging in...");
41 |         var payload = new
42 |         {
43 |             command = "login",
44 |             arguments = new
45 |             {
46 |                 email,
47 |                 password
48 |             }
49 |         };
50 | 
51 |         var response = SendRequest(serverIp, serverPort, payload);
52 |         Console.WriteLine("✅ Server Response:");
53 |         Console.WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
54 |     }
55 | 
56 |     static dynamic SendRequest(string serverIp, int serverPort, object payload)
57 |     {
58 |         using (var client = new System.Net.Sockets.TcpClient())
59 |         {
60 |             client.Connect(serverIp, serverPort);
61 |             using (var stream = client.GetStream())
62 |             {
63 |                 var payloadJson = JsonConvert.SerializeObject(payload);
64 |                 var data = System.Text.Encoding.UTF8.GetBytes(payloadJson);
65 | 
66 |                 // Send payload
67 |                 stream.Write(data, 0, data.Length);
68 | 
69 |                 // Receive response
70 |                 var buffer = new byte[4096];
71 |                 var bytesRead = stream.Read(buffer, 0, buffer.Length);
72 |                 var responseJson = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
73 | 
74 |                 return JsonConvert.DeserializeObject(responseJson);
75 |             }
76 |         }
77 |     }
78 | }
79 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_login.cs:
--------------------------------------------------------------------------------

```csharp
 1 | // Using CommandLineParser for cleaner argument parsing
 2 | using System;
 3 | using Newtonsoft.Json;
 4 | 
 5 | class Program
 6 | {
 7 |     static void Main(string[] args)
 8 |     {
 9 |         string serverIp = null;
10 |         int serverPort = 0;
11 |         string email = null;
12 |         string password = null;
13 | 
14 |         // Loop through args and parse them manually (or use a parser library like CommandLineParser)
15 |         for (int i = 0; i < args.Length; i++)
16 |         {
17 |             switch (args[i])
18 |             {
19 |                 case "--server-ip":
20 |                     serverIp = args[++i];
21 |                     break;
22 |                 case "--server-port":
23 |                     serverPort = int.Parse(args[++i]);
24 |                     break;
25 |                 case "--email":
26 |                     email = args[++i];
27 |                     break;
28 |                 case "--password":
29 |                     password = args[++i];
30 |                     break;
31 |             }
32 |         }
33 | 
34 |         if (string.IsNullOrEmpty(serverIp) || serverPort == 0 || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password))
35 |         {
36 |             Console.WriteLine("❌ ERROR: Missing required parameters.");
37 |             return;
38 |         }
39 | 
40 |         Console.WriteLine("🔐 Logging in...");
41 |         var payload = new
42 |         {
43 |             command = "login",
44 |             arguments = new
45 |             {
46 |                 email,
47 |                 password
48 |             }
49 |         };
50 | 
51 |         var response = SendRequest(serverIp, serverPort, payload);
52 |         Console.WriteLine("✅ Server Response:");
53 |         Console.WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
54 |     }
55 | 
56 |     static dynamic SendRequest(string serverIp, int serverPort, object payload)
57 |     {
58 |         using (var client = new System.Net.Sockets.TcpClient())
59 |         {
60 |             client.Connect(serverIp, serverPort);
61 |             using (var stream = client.GetStream())
62 |             {
63 |                 var payloadJson = JsonConvert.SerializeObject(payload);
64 |                 var data = System.Text.Encoding.UTF8.GetBytes(payloadJson);
65 | 
66 |                 // Send payload
67 |                 stream.Write(data, 0, data.Length);
68 | 
69 |                 // Receive response
70 |                 var buffer = new byte[4096];
71 |                 var bytesRead = stream.Read(buffer, 0, buffer.Length);
72 |                 var responseJson = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
73 | 
74 |                 return JsonConvert.DeserializeObject(responseJson);
75 |             }
76 |         }
77 |     }
78 | }
79 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/5.2 mcp_delete_user/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPDeleteUserClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 8)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --email <EMAIL> --token <TOKEN>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string email = GetArgument(args, "--email");
21 |             string token = GetArgument(args, "--token");
22 | 
23 |             var payload = new
24 |             {
25 |                 command = "delete_user",
26 |                 token = token,
27 |                 arguments = new
28 |                 {
29 |                     email = email
30 |                 }
31 |             };
32 | 
33 |             Console.WriteLine("📤 Sending delete user request...");
34 |             string response = SendRequest(serverIp, serverPort, payload);
35 |             Console.WriteLine("✔️ Response from server:");
36 |             Console.WriteLine(response);
37 |         }
38 | 
39 |         static string GetArgument(string[] args, string key)
40 |         {
41 |             int index = Array.IndexOf(args, key);
42 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
43 |         }
44 | 
45 |         static string SendRequest(string serverIp, int serverPort, object payload)
46 |         {
47 |             string payloadJson = JsonConvert.SerializeObject(payload);
48 | 
49 |             try
50 |             {
51 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
52 |                 {
53 |                     NetworkStream stream = client.GetStream();
54 | 
55 |                     // Send payload
56 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
57 |                     stream.Write(data, 0, data.Length);
58 | 
59 |                     // Receive response
60 |                     byte[] buffer = new byte[4096];
61 |                     int bytesRead;
62 |                     StringBuilder response = new StringBuilder();
63 | 
64 |                     do
65 |                     {
66 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
67 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
68 |                     } while (bytesRead == buffer.Length);
69 | 
70 |                     return response.ToString();
71 |                 }
72 |             }
73 |             catch (Exception e)
74 |             {
75 |                 return $"Error: {e.Message}";
76 |             }
77 |         }
78 |     }
79 | }
80 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_delete_user.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPDeleteUserClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 8)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --email <EMAIL> --token <TOKEN>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string email = GetArgument(args, "--email");
21 |             string token = GetArgument(args, "--token");
22 | 
23 |             var payload = new
24 |             {
25 |                 command = "delete_user",
26 |                 token = token,
27 |                 arguments = new
28 |                 {
29 |                     email = email
30 |                 }
31 |             };
32 | 
33 |             Console.WriteLine("📤 Sending delete user request...");
34 |             string response = SendRequest(serverIp, serverPort, payload);
35 |             Console.WriteLine("✔️ Response from server:");
36 |             Console.WriteLine(response);
37 |         }
38 | 
39 |         static string GetArgument(string[] args, string key)
40 |         {
41 |             int index = Array.IndexOf(args, key);
42 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
43 |         }
44 | 
45 |         static string SendRequest(string serverIp, int serverPort, object payload)
46 |         {
47 |             string payloadJson = JsonConvert.SerializeObject(payload);
48 | 
49 |             try
50 |             {
51 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
52 |                 {
53 |                     NetworkStream stream = client.GetStream();
54 | 
55 |                     // Send payload
56 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
57 |                     stream.Write(data, 0, data.Length);
58 | 
59 |                     // Receive response
60 |                     byte[] buffer = new byte[4096];
61 |                     int bytesRead;
62 |                     StringBuilder response = new StringBuilder();
63 | 
64 |                     do
65 |                     {
66 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
67 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
68 |                     } while (bytesRead == buffer.Length);
69 | 
70 |                     return response.ToString();
71 |                 }
72 |             }
73 |             catch (Exception e)
74 |             {
75 |                 return $"Error: {e.Message}";
76 |             }
77 |         }
78 |     }
79 | }
80 | 
```

--------------------------------------------------------------------------------
/clients/Python/2.3 mcp_delete_all_chats/MCPDeleteAllChatsClient.py:
--------------------------------------------------------------------------------

```python
 1 | import socket
 2 | import ssl
 3 | import json
 4 | import argparse
 5 | 
 6 | def send_request(server_ip, server_port, payload, use_ssl=True, accept_self_signed=False):
 7 |     """
 8 |     Sends a generic request to the server.
 9 |     """
10 |     payload_json = json.dumps(payload)
11 |     
12 |     raw_socket = None
13 |     client_socket = None
14 |     
15 |     try:
16 |         raw_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
17 |         raw_socket.settimeout(10)
18 | 
19 |         if use_ssl:
20 |             context = ssl.create_default_context()
21 |             if accept_self_signed:
22 |                 context.check_hostname = False
23 |                 context.verify_mode = ssl.CERT_NONE
24 |             client_socket = context.wrap_socket(raw_socket, server_hostname=server_ip)
25 |         else:
26 |             client_socket = raw_socket
27 |         
28 |         client_socket.connect((server_ip, server_port))
29 |         client_socket.sendall(payload_json.encode('utf-8'))
30 | 
31 |         response = b""
32 |         while True:
33 |             part = client_socket.recv(4096)
34 |             if not part:
35 |                 break
36 |             response += part
37 | 
38 |         return json.loads(response.decode('utf-8'))
39 |     except ssl.SSLError:
40 |         return {"status": "error", "message": "Connection failed: Server and/or client may require TLS encryption. Please enable SSL/TLS."}
41 |     except Exception as e:
42 |         return {"status": "error", "message": str(e)}
43 |     
44 |     finally:
45 |         if client_socket is not None:
46 |             try:
47 |                 client_socket.shutdown(socket.SHUT_RDWR)
48 |             except:
49 |                 pass
50 |             client_socket.close()
51 | 
52 | if __name__ == "__main__":
53 |     parser = argparse.ArgumentParser(description="Deletes all chat history from the server.")
54 |     parser.add_argument("--server-ip", required=True, help="IP address of the MCP server")
55 |     parser.add_argument("--server-port", required=True, type=int, help="Port number of the MCP server")
56 |     parser.add_argument("--token", required=True, help="Authentication token")
57 |     parser.add_argument("--use-ssl", action="store_true", help="Connect using SSL/TLS")
58 |     parser.add_argument("--accept-self-signed", action="store_true", help="Accept self-signed certificates (disable certificate verification)")
59 | 
60 |     args = parser.parse_args()
61 | 
62 |     payload = {
63 |         "command": "delete_all_chats",
64 |         "token": args.token
65 |     }
66 | 
67 |     print("📤 Sending request to delete all chats...")
68 |     response = send_request(args.server_ip, args.server_port, payload, use_ssl=args.use_ssl, accept_self_signed=args.accept_self_signed)
69 |     print("✔️ Response:", json.dumps(response, indent=2))
70 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.4 mcp_delete_source/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPDeleteSourceClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --source-id <SOURCE_ID>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string sourceId = GetArgument(args, "--source-id");
22 | 
23 |             Console.WriteLine("📤 Sending request to delete source...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "delete_source",
28 |                 token = token,
29 |                 arguments = new
30 |                 {
31 |                     sourceId = sourceId
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_delete_source.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPDeleteSourceClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --source-id <SOURCE_ID>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string sourceId = GetArgument(args, "--source-id");
22 | 
23 |             Console.WriteLine("📤 Sending request to delete source...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "delete_source",
28 |                 token = token,
29 |                 arguments = new
30 |                 {
31 |                     sourceId = sourceId
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.1 mcp_get_source/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPGetSourceClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --source-id <SOURCE_ID>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string sourceId = GetArgument(args, "--source-id");
22 | 
23 |             Console.WriteLine("📤 Sending request to get source information...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "get_source",
28 |                 token = token,
29 |                 arguments = new
30 |                 {
31 |                     sourceId = sourceId
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.2 mcp_delete_group/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPDeleteGroupClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 8)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --group-name <GROUP_NAME>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string groupName = GetArgument(args, "--group-name");
22 | 
23 |             Console.WriteLine("📤 Sending request to delete group...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "delete_group",
28 |                 token = token,
29 |                 arguments = new
30 |                 {
31 |                     groupName = groupName
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_delete_group.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPDeleteGroupClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 8)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --group-name <GROUP_NAME>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string groupName = GetArgument(args, "--group-name");
22 | 
23 |             Console.WriteLine("📤 Sending request to delete group...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "delete_group",
28 |                 token = token,
29 |                 arguments = new
30 |                 {
31 |                     groupName = groupName
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_get_source.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPGetSourceClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --source-id <SOURCE_ID>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string sourceId = GetArgument(args, "--source-id");
22 | 
23 |             Console.WriteLine("📤 Sending request to get source information...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "get_source",
28 |                 token = token,
29 |                 arguments = new
30 |                 {
31 |                     sourceId = sourceId
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/2.2 mcp_get_chat_info/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPChatInfoClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --chat-id <CHAT_ID>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string chatId = GetArgument(args, "--chat-id");
22 | 
23 |             var payload = new
24 |             {
25 |                 command = "get_chat_info",
26 |                 token = token,
27 |                 arguments = new
28 |                 {
29 |                     chatId = chatId
30 |                 }
31 |             };
32 | 
33 |             Console.WriteLine("📤 Anfrage senden...");
34 |             string response = SendRequest(serverIp, serverPort, payload);
35 |             Console.WriteLine("✔️ Antwort:");
36 |             Console.WriteLine(response);
37 |         }
38 | 
39 |         static string GetArgument(string[] args, string key)
40 |         {
41 |             int index = Array.IndexOf(args, key);
42 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
43 |         }
44 | 
45 |         static string SendRequest(string serverIp, int serverPort, object payload)
46 |         {
47 |             string payloadJson = JsonConvert.SerializeObject(payload);
48 | 
49 |             try
50 |             {
51 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
52 |                 {
53 |                     NetworkStream stream = client.GetStream();
54 | 
55 |                     // Send payload
56 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
57 |                     stream.Write(data, 0, data.Length);
58 | 
59 |                     // Receive response
60 |                     byte[] buffer = new byte[4096];
61 |                     int bytesRead;
62 |                     StringBuilder response = new StringBuilder();
63 | 
64 |                     do
65 |                     {
66 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
67 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
68 |                     } while (bytesRead == buffer.Length);
69 | 
70 |                     return response.ToString();
71 |                 }
72 |             }
73 |             catch (Exception e)
74 |             {
75 |                 return JsonConvert.SerializeObject(new { status = "error", message = e.Message });
76 |             }
77 |         }
78 |     }
79 | }
80 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.2 mcp_list_sources/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPListSourcesClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 8)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --group-name <GROUP_NAME>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string groupName = GetArgument(args, "--group-name");
22 | 
23 |             Console.WriteLine("📤 Sending request to list sources...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "list_sources",
28 |                 token = token,
29 |                 attributes = new
30 |                 {
31 |                     groupName = groupName
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_get_chat_info.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPChatInfoClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --chat-id <CHAT_ID>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string chatId = GetArgument(args, "--chat-id");
22 | 
23 |             var payload = new
24 |             {
25 |                 command = "get_chat_info",
26 |                 token = token,
27 |                 arguments = new
28 |                 {
29 |                     chatId = chatId
30 |                 }
31 |             };
32 | 
33 |             Console.WriteLine("📤 Anfrage senden...");
34 |             string response = SendRequest(serverIp, serverPort, payload);
35 |             Console.WriteLine("✔️ Antwort:");
36 |             Console.WriteLine(response);
37 |         }
38 | 
39 |         static string GetArgument(string[] args, string key)
40 |         {
41 |             int index = Array.IndexOf(args, key);
42 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
43 |         }
44 | 
45 |         static string SendRequest(string serverIp, int serverPort, object payload)
46 |         {
47 |             string payloadJson = JsonConvert.SerializeObject(payload);
48 | 
49 |             try
50 |             {
51 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
52 |                 {
53 |                     NetworkStream stream = client.GetStream();
54 | 
55 |                     // Send payload
56 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
57 |                     stream.Write(data, 0, data.Length);
58 | 
59 |                     // Receive response
60 |                     byte[] buffer = new byte[4096];
61 |                     int bytesRead;
62 |                     StringBuilder response = new StringBuilder();
63 | 
64 |                     do
65 |                     {
66 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
67 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
68 |                     } while (bytesRead == buffer.Length);
69 | 
70 |                     return response.ToString();
71 |                 }
72 |             }
73 |             catch (Exception e)
74 |             {
75 |                 return JsonConvert.SerializeObject(new { status = "error", message = e.Message });
76 |             }
77 |         }
78 |     }
79 | }
80 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_list_sources.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPListSourcesClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 8)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --token <TOKEN> --group-name <GROUP_NAME>");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string token = GetArgument(args, "--token");
21 |             string groupName = GetArgument(args, "--group-name");
22 | 
23 |             Console.WriteLine("📤 Sending request to list sources...");
24 | 
25 |             var payload = new
26 |             {
27 |                 command = "list_sources",
28 |                 token = token,
29 |                 attributes = new
30 |                 {
31 |                     groupName = groupName
32 |                 }
33 |             };
34 | 
35 |             string response = SendRequest(serverIp, serverPort, payload);
36 | 
37 |             Console.WriteLine("✔️ Response from server:");
38 |             Console.WriteLine(response);
39 |         }
40 | 
41 |         static string GetArgument(string[] args, string key)
42 |         {
43 |             int index = Array.IndexOf(args, key);
44 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
45 |         }
46 | 
47 |         static string SendRequest(string serverIp, int serverPort, object payload)
48 |         {
49 |             string payloadJson = JsonConvert.SerializeObject(payload);
50 | 
51 |             try
52 |             {
53 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
54 |                 {
55 |                     NetworkStream stream = client.GetStream();
56 | 
57 |                     // Send payload
58 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
59 |                     stream.Write(data, 0, data.Length);
60 | 
61 |                     // Receive response
62 |                     byte[] buffer = new byte[4096];
63 |                     int bytesRead;
64 |                     StringBuilder response = new StringBuilder();
65 | 
66 |                     do
67 |                     {
68 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
69 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
70 |                     } while (bytesRead == buffer.Length);
71 | 
72 |                     return response.ToString();
73 |                 }
74 |             }
75 |             catch (Exception e)
76 |             {
77 |                 return $"Error: {e.Message}";
78 |             }
79 |         }
80 |     }
81 | }
82 | 
```

--------------------------------------------------------------------------------
/clients/Go/3.3 mcp_edit_source/MCPEditSourceClient.go:
--------------------------------------------------------------------------------

```go
  1 | package main
  2 | 
  3 | import (
  4 | 	"bytes"
  5 | 	"encoding/json"
  6 | 	"errors"
  7 | 	"flag"
  8 | 	"fmt"
  9 | 	"io"
 10 | 	"net"
 11 | 	"os"
 12 | )
 13 | 
 14 | type EditSourcePayload struct {
 15 | 	Command   string                 `json:"command"`
 16 | 	Token     string                 `json:"token"`
 17 | 	Arguments map[string]interface{} `json:"arguments"`
 18 | }
 19 | 
 20 | func sendEditSourceRequest(serverIP string, serverPort int, token, sourceID, title, content string, groups []string) (string, error) {
 21 | 	// Prepare the request payload
 22 | 	arguments := map[string]interface{}{
 23 | 		"sourceId": sourceID,
 24 | 	}
 25 | 	if title != "" {
 26 | 		arguments["title"] = title
 27 | 	}
 28 | 	if content != "" {
 29 | 		arguments["content"] = content
 30 | 	}
 31 | 	if len(groups) > 0 {
 32 | 		arguments["groups"] = groups
 33 | 	}
 34 | 
 35 | 	payload := EditSourcePayload{
 36 | 		Command:   "edit_source",
 37 | 		Token:     token,
 38 | 		Arguments: arguments,
 39 | 	}
 40 | 
 41 | 	// Convert the payload to JSON
 42 | 	payloadJSON, err := json.Marshal(payload)
 43 | 	if err != nil {
 44 | 		return "", err
 45 | 	}
 46 | 
 47 | 	// Create a connection to the server
 48 | 	conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", serverIP, serverPort))
 49 | 	if err != nil {
 50 | 		return "", err
 51 | 	}
 52 | 	defer conn.Close()
 53 | 
 54 | 	// Send the request
 55 | 	_, err = conn.Write(payloadJSON)
 56 | 	if err != nil {
 57 | 		return "", err
 58 | 	}
 59 | 
 60 | 	// Receive the response
 61 | 	var responseBuffer bytes.Buffer
 62 | 	buf := make([]byte, 4096)
 63 | 	for {
 64 | 		n, err := conn.Read(buf)
 65 | 		if err != nil {
 66 | 			if errors.Is(err, io.EOF) {
 67 | 				break
 68 | 			}
 69 | 			return "", err
 70 | 		}
 71 | 		responseBuffer.Write(buf[:n])
 72 | 		if n < 4096 {
 73 | 			break
 74 | 		}
 75 | 	}
 76 | 
 77 | 	return responseBuffer.String(), nil
 78 | }
 79 | 
 80 | func main() {
 81 | 	serverIP := flag.String("server-ip", "", "IP address of the MCP server")
 82 | 	serverPort := flag.Int("server-port", 0, "Port number of the MCP server")
 83 | 	token := flag.String("token", "", "Authentication token")
 84 | 	sourceID := flag.String("source-id", "", "ID of the source to edit")
 85 | 	title := flag.String("title", "", "New title for the source (optional)")
 86 | 	content := flag.String("content", "", "Updated content in markdown format (optional)")
 87 | 	groups := flag.String("groups", "", "Comma-separated list of updated groups (optional)")
 88 | 
 89 | 	flag.Parse()
 90 | 
 91 | 	if *serverIP == "" || *serverPort == 0 || *token == "" || *sourceID == "" {
 92 | 		fmt.Println("❌ ERROR: Required flags are missing.")
 93 | 		flag.Usage()
 94 | 		os.Exit(1)
 95 | 	}
 96 | 
 97 | 	// Convert groups to a slice
 98 | 	groupList := []string{}
 99 | 	if *groups != "" {
100 | 		groupList = append(groupList, *groups)
101 | 	}
102 | 
103 | 	// Send the request to edit the source
104 | 	fmt.Println("📤 Sending request to edit source...")
105 | 	response, err := sendEditSourceRequest(*serverIP, *serverPort, *token, *sourceID, *title, *content, groupList)
106 | 	if err != nil {
107 | 		fmt.Printf("❌ ERROR: %v\n", err)
108 | 		os.Exit(1)
109 | 	}
110 | 
111 | 	fmt.Println("✔️ Response from server:")
112 | 	fmt.Println(response)
113 | }
114 | 
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/pgpt/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Python/config.py
 2 | 
 3 | import json
 4 | import os
 5 | import logging
 6 | from language import languages
 7 | 
 8 | 
 9 | class ConfigError(Exception):
10 |     pass
11 | 
12 | 
13 | class Config:
14 | 
15 |     def __init__(self, config_file="config.json", required_fields=None):
16 |         self.required_fields = required_fields if required_fields is not None else []
17 |         self.config_file = config_file
18 |         self.data = self.load_config()
19 | 
20 |         # 🔥 Sprache wird **vor** validate() gesetzt
21 |         self.language = self.get("language", "en")
22 |         if self.language not in languages:
23 |             # Fallback zu Englisch, wenn die angegebene Sprache nicht unterstützt wird
24 |             fallback_lang = "en"
25 |             logging.warning(f"⚠️ Unsupported language '{self.language}', falling back to English.")
26 |             self.language = fallback_lang
27 |         self.lang = languages[self.language]  # ✅ Setzt self.lang vor validate()
28 | 
29 |         self.validate()
30 | 
31 | 
32 |     def set_value(self, key, value):
33 |         self.data[key] = value
34 | 
35 | 
36 |     def set_value(self, key, value):
37 |         self.data[key] = value
38 | 
39 |     def get_lang_message(self, key, **kwargs):
40 |         """
41 |         Sichere Methode zum Abrufen von Nachrichten aus dem Sprachwörterbuch.
42 |         Wenn der Schlüssel nicht existiert, wird eine Standardnachricht zurückgegeben.
43 |         """
44 |         message = self.lang.get(key, "Message not defined.")
45 |         try:
46 |             return message.format(**kwargs)
47 |         except KeyError as e:
48 |             logging.error(f"Missing placeholder in language file for key '{key}': {e}")
49 |             return message
50 | 
51 |     def load_config(self):
52 |         if not os.path.exists(self.config_file):
53 |             # Da die Sprache noch nicht geladen ist, verwenden wir Englisch für die Fehlermeldung
54 |             fallback_lang = "en"
55 |             message = languages[fallback_lang]['config_file_not_found'].format(config_file=self.config_file)
56 |             logging.error(message)
57 |             raise ConfigError(message)
58 |         try:
59 |             with open(self.config_file, "r", encoding="utf-8") as f:
60 |                 return json.load(f)
61 |         except json.JSONDecodeError as e:
62 |             fallback_lang = "en"
63 |             message = languages[fallback_lang]['invalid_json_in_config'].format(error=str(e))
64 |             logging.error(message)
65 |             raise ConfigError(message)
66 | 
67 |     def validate(self):
68 |         missing = [field for field in self.required_fields if field not in self.data]
69 |         if missing:
70 |             message = self.get_lang_message("missing_required_fields", fields=missing)
71 |             logging.error(message)
72 |             raise ConfigError(message)
73 | 
74 |     def get(self, key, default=None):
75 |         return self.data.get(key, default)
76 | 
```

--------------------------------------------------------------------------------
/examples/create_users_from_csv/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Python/config.py
 2 | 
 3 | import json
 4 | import os
 5 | import logging
 6 | from language import languages
 7 | 
 8 | 
 9 | class ConfigError(Exception):
10 |     pass
11 | 
12 | 
13 | class Config:
14 | 
15 |     def __init__(self, config_file="config.json", required_fields=None):
16 |         self.required_fields = required_fields if required_fields is not None else []
17 |         self.config_file = config_file
18 |         self.data = self.load_config()
19 | 
20 |         # 🔥 Sprache wird **vor** validate() gesetzt
21 |         self.language = self.get("language", "en")
22 |         if self.language not in languages:
23 |             # Fallback zu Englisch, wenn die angegebene Sprache nicht unterstützt wird
24 |             fallback_lang = "en"
25 |             logging.warning(f"⚠️ Unsupported language '{self.language}', falling back to English.")
26 |             self.language = fallback_lang
27 |         self.lang = languages[self.language]  # ✅ Setzt self.lang vor validate()
28 | 
29 |         self.validate()
30 | 
31 | 
32 |     def set_value(self, key, value):
33 |         self.data[key] = value
34 | 
35 | 
36 |     def set_value(self, key, value):
37 |         self.data[key] = value
38 | 
39 |     def get_lang_message(self, key, **kwargs):
40 |         """
41 |         Sichere Methode zum Abrufen von Nachrichten aus dem Sprachwörterbuch.
42 |         Wenn der Schlüssel nicht existiert, wird eine Standardnachricht zurückgegeben.
43 |         """
44 |         message = self.lang.get(key, "Message not defined.")
45 |         try:
46 |             return message.format(**kwargs)
47 |         except KeyError as e:
48 |             logging.error(f"Missing placeholder in language file for key '{key}': {e}")
49 |             return message
50 | 
51 |     def load_config(self):
52 |         if not os.path.exists(self.config_file):
53 |             # Da die Sprache noch nicht geladen ist, verwenden wir Englisch für die Fehlermeldung
54 |             fallback_lang = "en"
55 |             message = languages[fallback_lang]['config_file_not_found'].format(config_file=self.config_file)
56 |             logging.error(message)
57 |             raise ConfigError(message)
58 |         try:
59 |             with open(self.config_file, "r", encoding="utf-8") as f:
60 |                 return json.load(f)
61 |         except json.JSONDecodeError as e:
62 |             fallback_lang = "en"
63 |             message = languages[fallback_lang]['invalid_json_in_config'].format(error=str(e))
64 |             logging.error(message)
65 |             raise ConfigError(message)
66 | 
67 |     def validate(self):
68 |         missing = [field for field in self.required_fields if field not in self.data]
69 |         if missing:
70 |             message = self.get_lang_message("missing_required_fields", fields=missing)
71 |             logging.error(message)
72 |             raise ConfigError(message)
73 | 
74 |     def get(self, key, default=None):
75 |         return self.data.get(key, default)
76 | 
```

--------------------------------------------------------------------------------
/agents/AgentInterface/Python/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Python/config.py
 2 | 
 3 | import json
 4 | import os
 5 | import logging
 6 | from .language import languages
 7 | 
 8 | 
 9 | class ConfigError(Exception):
10 |     pass
11 | 
12 | 
13 | class Config:
14 | 
15 |     def __init__(self, config_file="config.json", required_fields=None):
16 |         self.required_fields = required_fields if required_fields is not None else []
17 |         self.config_file = config_file
18 |         self.data = self.load_config()
19 | 
20 |         # 🔥 Sprache wird **vor** validate() gesetzt
21 |         self.language = self.get("language", "en")
22 |         if self.language not in languages:
23 |             # Fallback zu Englisch, wenn die angegebene Sprache nicht unterstützt wird
24 |             fallback_lang = "en"
25 |             logging.warning(f"⚠️ Unsupported language '{self.language}', falling back to English.")
26 |             self.language = fallback_lang
27 |         self.lang = languages[self.language]  # ✅ Setzt self.lang vor validate()
28 | 
29 |         self.validate()
30 | 
31 | 
32 |     def set_value(self, key, value):
33 |         self.data[key] = value
34 | 
35 | 
36 |     def set_value(self, key, value):
37 |         self.data[key] = value
38 | 
39 |     def get_lang_message(self, key, **kwargs):
40 |         """
41 |         Sichere Methode zum Abrufen von Nachrichten aus dem Sprachwörterbuch.
42 |         Wenn der Schlüssel nicht existiert, wird eine Standardnachricht zurückgegeben.
43 |         """
44 |         message = self.lang.get(key, "Message not defined.")
45 |         try:
46 |             return message.format(**kwargs)
47 |         except KeyError as e:
48 |             logging.error(f"Missing placeholder in language file for key '{key}': {e}")
49 |             return message
50 | 
51 |     def load_config(self):
52 |         if not os.path.exists(self.config_file):
53 |             # Da die Sprache noch nicht geladen ist, verwenden wir Englisch für die Fehlermeldung
54 |             fallback_lang = "en"
55 |             message = languages[fallback_lang]['config_file_not_found'].format(config_file=self.config_file)
56 |             logging.error(message)
57 |             raise ConfigError(message)
58 |         try:
59 |             with open(self.config_file, "r", encoding="utf-8") as f:
60 |                 return json.load(f)
61 |         except json.JSONDecodeError as e:
62 |             fallback_lang = "en"
63 |             message = languages[fallback_lang]['invalid_json_in_config'].format(error=str(e))
64 |             logging.error(message)
65 |             raise ConfigError(message)
66 | 
67 |     def validate(self):
68 |         missing = [field for field in self.required_fields if field not in self.data]
69 |         if missing:
70 |             message = self.get_lang_message("missing_required_fields", fields=missing)
71 |             logging.error(message)
72 |             raise ConfigError(message)
73 | 
74 |     def get(self, key, default=None):
75 |         return self.data.get(key, default)
76 | 
```

--------------------------------------------------------------------------------
/examples/dynamic_sources/rss_reader/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Python/config.py
 2 | 
 3 | import json
 4 | import os
 5 | import logging
 6 | from .language import languages
 7 | 
 8 | 
 9 | class ConfigError(Exception):
10 |     pass
11 | 
12 | 
13 | class Config:
14 | 
15 |     def __init__(self, config_file="config.json", required_fields=None):
16 |         self.required_fields = required_fields if required_fields is not None else []
17 |         self.config_file = config_file
18 |         self.data = self.load_config()
19 | 
20 |         # 🔥 Sprache wird **vor** validate() gesetzt
21 |         self.language = self.get("language", "en")
22 |         if self.language not in languages:
23 |             # Fallback zu Englisch, wenn die angegebene Sprache nicht unterstützt wird
24 |             fallback_lang = "en"
25 |             logging.warning(f"⚠️ Unsupported language '{self.language}', falling back to English.")
26 |             self.language = fallback_lang
27 |         self.lang = languages[self.language]  # ✅ Setzt self.lang vor validate()
28 | 
29 |         self.validate()
30 | 
31 | 
32 |     def set_value(self, key, value):
33 |         self.data[key] = value
34 | 
35 | 
36 |     def set_value(self, key, value):
37 |         self.data[key] = value
38 | 
39 |     def get_lang_message(self, key, **kwargs):
40 |         """
41 |         Sichere Methode zum Abrufen von Nachrichten aus dem Sprachwörterbuch.
42 |         Wenn der Schlüssel nicht existiert, wird eine Standardnachricht zurückgegeben.
43 |         """
44 |         message = self.lang.get(key, "Message not defined.")
45 |         try:
46 |             return message.format(**kwargs)
47 |         except KeyError as e:
48 |             logging.error(f"Missing placeholder in language file for key '{key}': {e}")
49 |             return message
50 | 
51 |     def load_config(self):
52 |         if not os.path.exists(self.config_file):
53 |             # Da die Sprache noch nicht geladen ist, verwenden wir Englisch für die Fehlermeldung
54 |             fallback_lang = "en"
55 |             message = languages[fallback_lang]['config_file_not_found'].format(config_file=self.config_file)
56 |             logging.error(message)
57 |             raise ConfigError(message)
58 |         try:
59 |             with open(self.config_file, "r", encoding="utf-8") as f:
60 |                 return json.load(f)
61 |         except json.JSONDecodeError as e:
62 |             fallback_lang = "en"
63 |             message = languages[fallback_lang]['invalid_json_in_config'].format(error=str(e))
64 |             logging.error(message)
65 |             raise ConfigError(message)
66 | 
67 |     def validate(self):
68 |         missing = [field for field in self.required_fields if field not in self.data]
69 |         if missing:
70 |             message = self.get_lang_message("missing_required_fields", fields=missing)
71 |             logging.error(message)
72 |             raise ConfigError(message)
73 | 
74 |     def get(self, key, default=None):
75 |         return self.data.get(key, default)
76 | 
```

--------------------------------------------------------------------------------
/examples/sftp_upload_with_id/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Python/config.py
 2 | 
 3 | import json
 4 | import os
 5 | import logging
 6 | from .language import languages
 7 | 
 8 | 
 9 | class ConfigError(Exception):
10 |     pass
11 | 
12 | 
13 | class Config:
14 | 
15 |     def __init__(self, config_file="config.json", required_fields=None):
16 |         self.required_fields = required_fields if required_fields is not None else []
17 |         self.config_file = config_file
18 |         self.data = self.load_config()
19 | 
20 |         # 🔥 Sprache wird **vor** validate() gesetzt
21 |         self.language = self.get("language", "en")
22 |         if self.language not in languages:
23 |             # Fallback zu Englisch, wenn die angegebene Sprache nicht unterstützt wird
24 |             fallback_lang = "en"
25 |             logging.warning(f"⚠️ Unsupported language '{self.language}', falling back to English.")
26 |             self.language = fallback_lang
27 |         self.lang = languages[self.language]  # ✅ Setzt self.lang vor validate()
28 | 
29 |         self.validate()
30 | 
31 | 
32 |     def set_value(self, key, value):
33 |         self.data[key] = value
34 | 
35 | 
36 |     def set_value(self, key, value):
37 |         self.data[key] = value
38 | 
39 |     def get_lang_message(self, key, **kwargs):
40 |         """
41 |         Sichere Methode zum Abrufen von Nachrichten aus dem Sprachwörterbuch.
42 |         Wenn der Schlüssel nicht existiert, wird eine Standardnachricht zurückgegeben.
43 |         """
44 |         message = self.lang.get(key, "Message not defined.")
45 |         try:
46 |             return message.format(**kwargs)
47 |         except KeyError as e:
48 |             logging.error(f"Missing placeholder in language file for key '{key}': {e}")
49 |             return message
50 | 
51 |     def load_config(self):
52 |         if not os.path.exists(self.config_file):
53 |             # Da die Sprache noch nicht geladen ist, verwenden wir Englisch für die Fehlermeldung
54 |             fallback_lang = "en"
55 |             message = languages[fallback_lang]['config_file_not_found'].format(config_file=self.config_file)
56 |             logging.error(message)
57 |             raise ConfigError(message)
58 |         try:
59 |             with open(self.config_file, "r", encoding="utf-8") as f:
60 |                 return json.load(f)
61 |         except json.JSONDecodeError as e:
62 |             fallback_lang = "en"
63 |             message = languages[fallback_lang]['invalid_json_in_config'].format(error=str(e))
64 |             logging.error(message)
65 |             raise ConfigError(message)
66 | 
67 |     def validate(self):
68 |         missing = [field for field in self.required_fields if field not in self.data]
69 |         if missing:
70 |             message = self.get_lang_message("missing_required_fields", fields=missing)
71 |             logging.error(message)
72 |             raise ConfigError(message)
73 | 
74 |     def get(self, key, default=None):
75 |         return self.data.get(key, default)
76 | 
```

--------------------------------------------------------------------------------
/clients/Python/9.0 mcp_keygen/MCPKeygenClient.py:
--------------------------------------------------------------------------------

```python
 1 | import argparse
 2 | import socket
 3 | import ssl
 4 | import json
 5 | 
 6 | def send_keygen_request(server_ip, server_port, token, password, use_ssl=True, accept_self_signed=False):
 7 |     """
 8 |     Sends a keygen request to the MCP server.
 9 |     """
10 |     payload = {
11 |         "command": "keygen",
12 |         "token": token,
13 |         "arguments": {
14 |             "password": password
15 |         }
16 |     }
17 | 
18 |     payload_json = json.dumps(payload)
19 |     
20 |     raw_socket = None
21 |     client_socket = None
22 | 
23 |     try:
24 |         raw_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
25 |         raw_socket.settimeout(10)
26 | 
27 |         if use_ssl:
28 |             context = ssl.create_default_context()
29 |             if accept_self_signed:
30 |                 context.check_hostname = False
31 |                 context.verify_mode = ssl.CERT_NONE
32 |             client_socket = context.wrap_socket(raw_socket, server_hostname=server_ip)
33 |         else:
34 |             client_socket = raw_socket
35 |         
36 |         client_socket.connect((server_ip, server_port))
37 |         client_socket.sendall(payload_json.encode("utf-8"))
38 | 
39 |         response = b""
40 |         while True:
41 |             part = client_socket.recv(4096)
42 |             if not part:
43 |                 break
44 |             response += part
45 | 
46 |         return response.decode("utf-8")
47 |     except ssl.SSLError:
48 |         return "Error: Server and/or client may require TLS encryption. Please enable SSL/TLS."
49 |     except Exception as e:
50 |         return f"Error: {e}"
51 |     
52 |     finally:
53 |         if client_socket is not None:
54 |             try:
55 |                 client_socket.shutdown(socket.SHUT_RDWR)
56 |             except:
57 |                 pass
58 |             client_socket.close()
59 | 
60 | if __name__ == "__main__":
61 |     parser = argparse.ArgumentParser(description="Send a keygen request to the MCP server.")
62 |     parser.add_argument("--server-ip", required=True, help="IP address of the MCP server")
63 |     parser.add_argument("--server-port", type=int, required=True, help="Port number of the MCP server")
64 |     parser.add_argument("--token", required=True, help="Authentication token")
65 |     parser.add_argument("--password", required=True, help="Password to send for key generation")
66 |     parser.add_argument("--use-ssl", action="store_true", help="Connect using SSL/TLS")
67 |     parser.add_argument("--accept-self-signed", action="store_true", help="Accept self-signed certificates (disable certificate verification)")
68 | 
69 |     args = parser.parse_args()
70 | 
71 |     # Send the keygen request
72 |     response = send_keygen_request(
73 |         args.server_ip,
74 |         args.server_port,
75 |         args.token,
76 |         args.password,
77 |         use_ssl=args.use_ssl,
78 |         accept_self_signed=args.accept_self_signed
79 |     )
80 |     print("Response from server:", response)
81 | 
```

--------------------------------------------------------------------------------
/clients/Gradio/config.py:
--------------------------------------------------------------------------------

```python
 1 | # Python/config.py
 2 | 
 3 | import json
 4 | import os
 5 | import logging
 6 | from clients.Gradio.language import languages
 7 | 
 8 | 
 9 | class ConfigError(Exception):
10 |     pass
11 | 
12 | 
13 | class Config:
14 | 
15 |     def __init__(self, config_file="config.json", required_fields=None):
16 |         self.required_fields = required_fields if required_fields is not None else []
17 |         self.config_file = config_file
18 |         self.data = self.load_config()
19 | 
20 |         # 🔥 Sprache wird **vor** validate() gesetzt
21 |         self.language = self.get("language", "en")
22 |         if self.language not in languages:
23 |             # Fallback zu Englisch, wenn die angegebene Sprache nicht unterstützt wird
24 |             fallback_lang = "en"
25 |             logging.warning(f"⚠️ Unsupported language '{self.language}', falling back to English.")
26 |             self.language = fallback_lang
27 |         self.lang = languages[self.language]  # ✅ Setzt self.lang vor validate()
28 | 
29 |         self.validate()
30 | 
31 | 
32 |     def set_value(self, key, value):
33 |         self.data[key] = value
34 | 
35 | 
36 |     def set_value(self, key, value):
37 |         self.data[key] = value
38 | 
39 |     def get_lang_message(self, key, **kwargs):
40 |         """
41 |         Sichere Methode zum Abrufen von Nachrichten aus dem Sprachwörterbuch.
42 |         Wenn der Schlüssel nicht existiert, wird eine Standardnachricht zurückgegeben.
43 |         """
44 |         message = self.lang.get(key, "Message not defined.")
45 |         try:
46 |             return message.format(**kwargs)
47 |         except KeyError as e:
48 |             logging.error(f"Missing placeholder in language file for key '{key}': {e}")
49 |             return message
50 | 
51 |     def load_config(self):
52 |         if not os.path.exists(self.config_file):
53 |             # Da die Sprache noch nicht geladen ist, verwenden wir Englisch für die Fehlermeldung
54 |             fallback_lang = "en"
55 |             message = languages[fallback_lang]['config_file_not_found'].format(config_file=self.config_file)
56 |             logging.error(message)
57 |             raise ConfigError(message)
58 |         try:
59 |             with open(self.config_file, "r", encoding="utf-8") as f:
60 |                 return json.load(f)
61 |         except json.JSONDecodeError as e:
62 |             fallback_lang = "en"
63 |             message = languages[fallback_lang]['invalid_json_in_config'].format(error=str(e))
64 |             logging.error(message)
65 |             raise ConfigError(message)
66 | 
67 |     def validate(self):
68 |         missing = [field for field in self.required_fields if field not in self.data]
69 |         if missing:
70 |             message = self.get_lang_message("missing_required_fields", fields=missing)
71 |             logging.error(message)
72 |             raise ConfigError(message)
73 | 
74 |     def get(self, key, default=None):
75 |         return self.data.get(key, default)
76 | 
```

--------------------------------------------------------------------------------
/clients/Python/2.2 mcp_get_chat_info/MCPGetChatInfoClient.py:
--------------------------------------------------------------------------------

```python
 1 | import socket
 2 | import ssl
 3 | import json
 4 | import argparse
 5 | 
 6 | def send_request(server_ip, server_port, payload, use_ssl=True, accept_self_signed=False):
 7 |     """
 8 |     Sends a generic request to the server.
 9 |     """
10 |     payload_json = json.dumps(payload)
11 |     
12 |     raw_socket = None
13 |     client_socket = None
14 |     
15 |     try:
16 |         raw_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
17 |         raw_socket.settimeout(10)
18 | 
19 |         if use_ssl:
20 |             context = ssl.create_default_context()
21 |             if accept_self_signed:
22 |                 context.check_hostname = False
23 |                 context.verify_mode = ssl.CERT_NONE
24 |             client_socket = context.wrap_socket(raw_socket, server_hostname=server_ip)
25 |         else:
26 |             client_socket = raw_socket
27 |         
28 |         client_socket.connect((server_ip, server_port))
29 |         client_socket.sendall(payload_json.encode('utf-8'))
30 | 
31 |         response = b""
32 |         while True:
33 |             part = client_socket.recv(4096)
34 |             if not part:
35 |                 break
36 |             response += part
37 | 
38 |         return json.loads(response.decode('utf-8'))
39 |     except ssl.SSLError:
40 |         return {"status": "error", "message": "Connection failed: Server and/or client may require TLS encryption. Please enable SSL/TLS."}
41 |     except Exception as e:
42 |         return {"status": "error", "message": str(e)}
43 |     
44 |     finally:
45 |         if client_socket is not None:
46 |             try:
47 |                 client_socket.shutdown(socket.SHUT_RDWR)
48 |             except:
49 |                 pass
50 |             client_socket.close()
51 | 
52 | if __name__ == "__main__":
53 |     parser = argparse.ArgumentParser(description="Retrieve information about an existing conversation.")
54 |     parser.add_argument("--server-ip", required=True, help="IP address of the MCP server")
55 |     parser.add_argument("--server-port", required=True, type=int, help="Port number of the MCP server")
56 |     parser.add_argument("--token", required=True, help="Authentication token")
57 |     parser.add_argument("--chat-id", required=True, help="ID of the conversation")
58 |     parser.add_argument("--use-ssl", action="store_true", help="Connect using SSL/TLS")
59 |     parser.add_argument("--accept-self-signed", action="store_true", help="Accept self-signed certificates (disable certificate verification)")
60 | 
61 |     args = parser.parse_args()
62 | 
63 |     payload = {
64 |         "command": "get_chat_info",
65 |         "token": args.token,
66 |         "arguments": {
67 |             "chatId": args.chat_id
68 |         }
69 |     }
70 | 
71 |     print("📤 Sending request...")
72 |     response = send_request(args.server_ip, args.server_port, payload, use_ssl=args.use_ssl, accept_self_signed=args.accept_self_signed)
73 |     print("✔️ Response:", json.dumps(response, indent=2))
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.1 mcp_store_group/Program.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPStoreGroupClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --group-name <GROUP_NAME> --token <TOKEN> [--description <DESCRIPTION>]");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string groupName = GetArgument(args, "--group-name");
21 |             string token = GetArgument(args, "--token");
22 |             string description = GetArgument(args, "--description") ?? "";
23 | 
24 |             Console.WriteLine("📤 Sende Anfrage zur Erstellung einer Gruppe...");
25 | 
26 |             var payload = new
27 |             {
28 |                 command = "store_group",
29 |                 token = token,
30 |                 arguments = new
31 |                 {
32 |                     groupName = groupName,
33 |                     description = description
34 |                 }
35 |             };
36 | 
37 |             string response = SendRequest(serverIp, serverPort, payload);
38 | 
39 |             Console.WriteLine("✔️ Antwort vom Server:");
40 |             Console.WriteLine(response);
41 |         }
42 | 
43 |         static string GetArgument(string[] args, string key)
44 |         {
45 |             int index = Array.IndexOf(args, key);
46 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
47 |         }
48 | 
49 |         static string SendRequest(string serverIp, int serverPort, object payload)
50 |         {
51 |             string payloadJson = JsonConvert.SerializeObject(payload);
52 | 
53 |             try
54 |             {
55 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
56 |                 {
57 |                     NetworkStream stream = client.GetStream();
58 | 
59 |                     // Senden der Nutzdaten
60 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
61 |                     stream.Write(data, 0, data.Length);
62 | 
63 |                     // Empfang der Antwort
64 |                     byte[] buffer = new byte[4096];
65 |                     int bytesRead;
66 |                     StringBuilder response = new StringBuilder();
67 | 
68 |                     do
69 |                     {
70 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
71 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
72 |                     } while (bytesRead == buffer.Length);
73 | 
74 |                     return response.ToString();
75 |                 }
76 |             }
77 |             catch (Exception e)
78 |             {
79 |                 return $"Error: {e.Message}";
80 |             }
81 |         }
82 |     }
83 | }
84 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/Code Archiv/mcp_store_group.cs:
--------------------------------------------------------------------------------

```csharp
 1 | using System;
 2 | using System.Net.Sockets;
 3 | using System.Text;
 4 | using Newtonsoft.Json;
 5 | 
 6 | namespace MCPStoreGroupClient
 7 | {
 8 |     class Program
 9 |     {
10 |         static void Main(string[] args)
11 |         {
12 |             if (args.Length < 4)
13 |             {
14 |                 Console.WriteLine("Usage: --server-ip <IP> --server-port <PORT> --group-name <GROUP_NAME> --token <TOKEN> [--description <DESCRIPTION>]");
15 |                 return;
16 |             }
17 | 
18 |             string serverIp = GetArgument(args, "--server-ip");
19 |             int serverPort = int.Parse(GetArgument(args, "--server-port"));
20 |             string groupName = GetArgument(args, "--group-name");
21 |             string token = GetArgument(args, "--token");
22 |             string description = GetArgument(args, "--description") ?? "";
23 | 
24 |             Console.WriteLine("📤 Sende Anfrage zur Erstellung einer Gruppe...");
25 | 
26 |             var payload = new
27 |             {
28 |                 command = "store_group",
29 |                 token = token,
30 |                 arguments = new
31 |                 {
32 |                     groupName = groupName,
33 |                     description = description
34 |                 }
35 |             };
36 | 
37 |             string response = SendRequest(serverIp, serverPort, payload);
38 | 
39 |             Console.WriteLine("✔️ Antwort vom Server:");
40 |             Console.WriteLine(response);
41 |         }
42 | 
43 |         static string GetArgument(string[] args, string key)
44 |         {
45 |             int index = Array.IndexOf(args, key);
46 |             return index >= 0 && index < args.Length - 1 ? args[index + 1] : null;
47 |         }
48 | 
49 |         static string SendRequest(string serverIp, int serverPort, object payload)
50 |         {
51 |             string payloadJson = JsonConvert.SerializeObject(payload);
52 | 
53 |             try
54 |             {
55 |                 using (TcpClient client = new TcpClient(serverIp, serverPort))
56 |                 {
57 |                     NetworkStream stream = client.GetStream();
58 | 
59 |                     // Senden der Nutzdaten
60 |                     byte[] data = Encoding.UTF8.GetBytes(payloadJson);
61 |                     stream.Write(data, 0, data.Length);
62 | 
63 |                     // Empfang der Antwort
64 |                     byte[] buffer = new byte[4096];
65 |                     int bytesRead;
66 |                     StringBuilder response = new StringBuilder();
67 | 
68 |                     do
69 |                     {
70 |                         bytesRead = stream.Read(buffer, 0, buffer.Length);
71 |                         response.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead));
72 |                     } while (bytesRead == buffer.Length);
73 | 
74 |                     return response.ToString();
75 |                 }
76 |             }
77 |             catch (Exception e)
78 |             {
79 |                 return $"Error: {e.Message}";
80 |             }
81 |         }
82 |     }
83 | }
84 | 
```
Page 6/20FirstPrevNextLast