#
tokens: 46850/50000 33/501 files (page 1/20)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 1 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/Gradio/mcp_servers/sqlite/.python-version:
--------------------------------------------------------------------------------

```
1 | 3.12
2 | 
```

--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------

```
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 | 
```

--------------------------------------------------------------------------------
/agents/MCP-Client/.env.example:
--------------------------------------------------------------------------------

```
1 | PGPT_API_KEY = 'mykey'
2 | PGPT_OAI_BASE_URL = 'http://127.0.0.1:8001'
3 | PGPT_API_KEY_VLLM = 'vllmapikey'
4 | PGPT_OAI_BASE_URL_VLLM = 'https://vllmapi'
5 | USE_VLLM = "False"
```

--------------------------------------------------------------------------------
/clients/C# .Net/1.0 mcp_login/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/1.1 mcp_logout/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/2.0 mcp_chat/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/2.1 mcp_continue_chat/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/2.2 mcp_get_chat_info/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.0 mcp_create_source/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.1 mcp_get_source/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.2 mcp_list_sources/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.3 mcp_edit_source/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/3.4 mcp_delete_source/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.0 mcp_list_groups/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.1 mcp_store_group/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/4.2 mcp_delete_group/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/5.0 mcp_store_user/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/5.1 mcp_edit_user/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/5.2 mcp_delete_user/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:
--------------------------------------------------------------------------------

```csharp
1 | // <autogenerated />
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
5 | 
```

--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------

```
 1 | node_modules
 2 | dist
 3 | tests
 4 | .idea
 5 | logs
 6 | package-lock.json
 7 | pgpt.env.json
 8 | agents/ChatBotAgent/pgpt_botagent.json
 9 | agents/ChatBotAgent/Python/__pycache__/
10 | agents/ChatBotAgent/__pycache__
11 | open-ai-compatible-api/__pycache__/
12 | /agents/ChatBotAgent/config.json
13 | agents/__pycache__/__init__.cpython-312.pyc
14 | *.pyc
15 | /.vscode
16 | agents/ChatBotAgent/flask.log
17 | agents/OpenAI_Compatible_API_Agent/pgpt_openai_api_mcp.json
18 | agents/OpenAI_Compatible_API_Agent/pgpt_openai_api_proxy.json
19 | agents/OpenAI_Compatible_API_Agent/pgpt_openai_api_proxy_sam.json
20 | agents/ChatBotAgent/agent.log
21 | agents/OpenAI_Compatible_API_Agent/venv
22 | agent.log
23 | *.log
24 | agents/SourceManagerAgent/config.json
25 | agents/SourceManagerAgent/database/documents.sql
26 | /tests/mcp-cli/undefined/
27 | /agents/MCP-Client/undefined/
28 | agents/MCP-Client/.env
29 | agents/MCP-Client/test_prompts.txt
30 | /agents/MCP-Client/server_config2.json
31 | clients/Python/Gradio/.gradio/cached_examples/16/log.csv
32 | agents/OpenAI_Compatible_API_Agent/.gradio/cached_examples/16/log.csv
33 | clients/Python/Gradio/config.json
34 | clients/Gradio/config.json
35 | clients/Gradio/mcp_servers/sqlite/uv.lock
36 | clients/Gradio/mcp_servers/sqlite/test.db
37 | clients/Gradio/models/moondream-2b-int8.mf
38 | clients/Gradio/models/moondream-0_5b-int8.mf
39 | examples/dynamic_sources/rss_reader/config.json
40 | /clients/Gradio/mcp_servers/pgpt/config.json
41 | examples/sftp_upload_with_id/config_ftp.json
42 | 
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/pgpt/README.md:
--------------------------------------------------------------------------------

```markdown
 1 | # mcp-server-pgpt
 2 | Model Context Protocol server to access PrivateGPT functionalities
 3 | 
 4 | [![Python 3.12](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3120/)
 5 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
 6 | 
 7 | ## Demos
 8 | 
 9 | 
10 | https://github.com/user-attachments/assets/dc4e377b-4efb-43e6-85fa-93ed852fe21f
11 | 
12 | uv sync
13 | 
14 | ## Quickstart
15 | 
16 | To try this in Claude Desktop app, add this to your claude config files:
17 | 
18 | ```json
19 | {
20 |   "mcpServers": {
21 |     "mcp-server-oracle": {
22 |       "command": "uvx",
23 |       "args": [
24 |         "mcp-server-oracle"
25 |       ],
26 |       "env": {
27 |         "ORACLE_CONNECTION_STRING": "username/password@hostname:password/service_name"
28 |       }
29 |     }
30 |   }
31 | }
32 | ```
33 | 
34 | ### Prerequisites
35 | 
36 | - UV (pacakge manager)
37 | - Python 3.12+
38 | - Claude Desktop
39 | 
40 | ### Installation
41 | 
42 | #### Claude Desktop Configuration
43 | 
44 | Add the server configuration to your Claude Desktop config file:
45 | 
46 | **MacOS**: `~/Library/Application\ Support/Claude/claude_desktop_config.json`  
47 | **Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
48 | 
49 | 
50 | ## Contributing
51 | 
52 | 1. Fork the repository from [mcp-server-oracle](https://github.com/hdcola/mcp-server-oracle)
53 | 2. Create your feature branch
54 | 3. Commit your changes
55 | 4. Push to the branch
56 | 5. Open a Pull Request
57 | 
58 | ## License
59 | 
60 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
61 | 
```

--------------------------------------------------------------------------------
/agents/MCP-Client/README.md:
--------------------------------------------------------------------------------

```markdown
 1 | 
 2 | # MCP-Client
 3 | 
 4 | ## Overview
 5 | The **MCP Client** is an example Client that uses the PGPT OpenAI-Compatible API (or other providers) and MCP Servers to make use of MCP tools. 
 6 | 
 7 | 
 8 | ---
 9 | 
10 | ## Features
11 | - **Load Multiple MCP servers** 
12 | - **Communicate via Stdio**
13 | - **List tools, and use tools**
14 | 
15 | ## Prerequisites
16 | - **Python:** 3.8 or higher
17 | - **Dependencies:**  
18 | - **Have the OpenAI Compatible API agent running** 
19 | ---
20 | 
21 | ## Setup
22 | 1. **Clone the Repository:**
23 |    ```bash
24 |    git clone https://github.com/pgpt-dev/MCP-Server-for-MAS-Developments.git
25 |    cd MCP-Server-for-MAS-Developments
26 |    ```
27 | 
28 | 2. **(Optional) Create and Activate a Virtual Environment:**
29 |    - **Windows:**
30 |      ```bash
31 |      python -m venv venv
32 |      .\venv\Scripts\activate
33 |      ```
34 |      
35 |    - **Unix/MacOS:**
36 |      ```bash
37 |      python -m venv venv
38 |      source venv/bin/activate
39 |      ```
40 | 
41 | 3. **Install Dependencies:**
42 |    ```bash
43 |    pip install -r agents/MCP-Client/requirements.txt
44 |    ```
45 | 
46 | 4. **Configure the Agent:**
47 |    Copy the example configuration file and adjust it to your environment:
48 | 
49 |    ```bash
50 |    cp agents/MCP-Client/.env.example agents/MCP-Client/.env
51 |    ```
52 | 
53 |    **Example `config.json`:**
54 | 
55 |    ```env
56 |    PGPT_API_KEY = '<your api key>'
57 |    PGPT_OAI_BASE_URL = '<PGPT OpenAiCompatible API URL>'
58 |    ```
59 | 
60 | 
61 | ## Running the Agent
62 | To start the MCP-Client, ensure you're in the repository's root directory and the OAI Agent is running and run:
63 | 
64 | ```bash
65 | python -m agents.MCP-Client.Python.mcp_client
66 | ```
67 | 
68 | ---
69 | 
70 | 
71 | ## License
72 | This project is licensed under the MIT License - see the LICENSE file for details.
73 | 
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/arxiv/README.md:
--------------------------------------------------------------------------------

```markdown
 1 | # arXiv MCP Server Integration
 2 | 
 3 | This integration allows you to use the arXiv MCP Server with the Gradio client. The arXiv MCP Server provides tools for searching, downloading, and reading arXiv papers.
 4 | 
 5 | ## Prerequisites
 6 | 
 7 | - Python 3.10 or higher
 8 | - Node.js 16 or higher
 9 | 
10 | ## Installation
11 | 
12 | 1. Install the arxiv-mcp-server package:
13 |    ```bash
14 |    pip install arxiv-mcp-server
15 |    ```
16 | 
17 | 2. Make sure the arxiv-stdio.js script is executable:
18 |    ```bash
19 |    chmod +x arxiv-stdio.js
20 |    ```
21 | 
22 | ## Configuration
23 | 
24 | Add the arxiv server to your server_config.json file:
25 | 
26 | ```json
27 | {
28 |   "mcpServers": {
29 |     "arxiv": {
30 |       "command": "node",
31 |       "args": [
32 |         "clients/Gradio/mcp_servers/arxiv/arxiv-stdio.js"
33 |       ]
34 |     }
35 |   }
36 | }
37 | ```
38 | 
39 | ## Available Tools
40 | 
41 | The arXiv MCP Server provides the following tools:
42 | 
43 | 1. **search_papers**: Search for papers on arXiv
44 |    - Parameters:
45 |      - query: The search query
46 |      - max_results: Maximum number of results to return (default: 10)
47 | 
48 | 2. **download_paper**: Download a paper from arXiv
49 |    - Parameters:
50 |      - paper_id: The arXiv ID of the paper
51 | 
52 | 3. **list_papers**: List downloaded papers
53 |    - Parameters: None
54 | 
55 | 4. **read_paper**: Read a downloaded paper
56 |    - Parameters:
57 |      - paper_id: The arXiv ID of the paper
58 | 
59 | ## Example Usage
60 | 
61 | Here are some example prompts to use with the arXiv MCP Server:
62 | 
63 | - "Search for papers about large language models"
64 | - "Download the paper with ID 2303.08774"
65 | - "List all downloaded papers"
66 | - "Read the paper with ID 2303.08774"
67 | 
68 | ## Troubleshooting
69 | 
70 | If you encounter any issues, make sure:
71 | 
72 | 1. The arxiv-mcp-server package is installed
73 | 2. The arxiv-stdio.js script is executable
74 | 3. The server_config.json file is correctly configured
75 | 4. You have an active internet connection to access arXiv
76 | 
```

--------------------------------------------------------------------------------
/clients/Gradio/README.md:
--------------------------------------------------------------------------------

```markdown
 1 | # PrivateGPT Multi-Backend Demo Chat App
 2 | 
 3 | ## Description
 4 | This is a small demo demonstrating the usage of both, the VLLM API and the PrivateGPT API via RAG.
 5 | Note: This is still under development and might change in the future
 6 | ---
 7 | 
 8 | ## Prerequisites
 9 | - Python 3.8 or higher
10 | - Access to the PrivateGPT server
11 | - Access to the VLLM API on PrivateGPT
12 | 
13 | ---
14 | 
15 | ## Setup
16 | 1. **Clone the repository:**
17 |     ```bash
18 |     git clone [https://github.com/Fujitsu-AI/MCP-Server-for-MAS-Developments.git](https://github.com/Fujitsu-AI/MCP-Server-for-MAS-Developments.git)
19 |     cd MCP-Server-for-MAS-Developments/
20 |     ```
21 | 
22 | 2. **Optional: Create and activate a virtual environment:**
23 |     ```bash
24 |     python -m venv venv
25 |     ```
26 | 
27 |     - **Windows:**
28 |         ```bash
29 |         .\venv\Scripts\activate
30 |         ```
31 | 
32 |     - **Unix/MacOS:**
33 |         ```bash
34 |         source venv/bin/activate
35 |         ```
36 | 
37 | 3. **Install dependencies:**
38 |     ```bash
39 |     pip install -r .\clients\Gradio\requirements.txt
40 |     ```
41 | 
42 |    4. **Customise configuration file:**
43 | 
44 |       - 4.1 **Configuration for Gradio Client:**
45 | 
46 |           Copy the `config.json.example` file to `config.json` e.g. with  `cp  .\clients\Gradio\config.json.example  .\clients\Gradio\config.json`
47 |           Make sure that the `config.json` is configured correctly and contains all necessary fields. The file should look like this:
48 |           ```json
49 |           {
50 |                "base_url": "https://.../api/v1",
51 |                "proxy_user": "",
52 |                "proxy_password": "",
53 |                "access_header": "",
54 |                "vllm_url": "https://.../api/v1",
55 |                "vllm_api_key": "",
56 |                "language": "en",
57 |                "use_public": true
58 |            }
59 | 
60 |           ```
61 |         
62 | 
63 |     
64 | 5. **Start the UI:**
65 |    - 5.1 **Start the multi-backend Gradio Client Demo:**
66 |      ```bash
67 |      python -m clients.Gradio.main
68 |      ```
69 | 
70 | 
71 | ## License
72 | This project is licensed under the MIT License - see the LICENSE file for details.
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/sqlite/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # SQLite MCP Server
  2 | 
  3 | ## Overview
  4 | A Model Context Protocol (MCP) server implementation that provides database interaction and business intelligence capabilities through SQLite. This server enables running SQL queries, analyzing business data, and automatically generating business insight memos.
  5 | 
  6 | ## Components
  7 | 
  8 | ### Resources
  9 | The server exposes a single dynamic resource:
 10 | - `memo://insights`: A continuously updated business insights memo that aggregates discovered insights during analysis
 11 |   - Auto-updates as new insights are discovered via the append-insight tool
 12 | 
 13 | ### Prompts
 14 | The server provides a demonstration prompt:
 15 | - `mcp-demo`: Interactive prompt that guides users through database operations
 16 |   - Required argument: `topic` - The business domain to analyze
 17 |   - Generates appropriate database schemas and sample data
 18 |   - Guides users through analysis and insight generation
 19 |   - Integrates with the business insights memo
 20 | 
 21 | ### Tools
 22 | The server offers six core tools:
 23 | 
 24 | #### Query Tools
 25 | - `read_query`
 26 |    - Execute SELECT queries to read data from the database
 27 |    - Input:
 28 |      - `query` (string): The SELECT SQL query to execute
 29 |    - Returns: Query results as array of objects
 30 | 
 31 | - `write_query`
 32 |    - Execute INSERT, UPDATE, or DELETE queries
 33 |    - Input:
 34 |      - `query` (string): The SQL modification query
 35 |    - Returns: `{ affected_rows: number }`
 36 | 
 37 | - `create_table`
 38 |    - Create new tables in the database
 39 |    - Input:
 40 |      - `query` (string): CREATE TABLE SQL statement
 41 |    - Returns: Confirmation of table creation
 42 | 
 43 | #### Schema Tools
 44 | - `list_tables`
 45 |    - Get a list of all tables in the database
 46 |    - No input required
 47 |    - Returns: Array of table names
 48 | 
 49 | - `describe-table`
 50 |    - View schema information for a specific table
 51 |    - Input:
 52 |      - `table_name` (string): Name of table to describe
 53 |    - Returns: Array of column definitions with names and types
 54 | 
 55 | #### Analysis Tools
 56 | - `append_insight`
 57 |    - Add new business insights to the memo resource
 58 |    - Input:
 59 |      - `insight` (string): Business insight discovered from data analysis
 60 |    - Returns: Confirmation of insight addition
 61 |    - Triggers update of memo://insights resource
 62 | 
 63 | 
 64 | ## Usage with Claude Desktop
 65 | 
 66 | ### uv
 67 | 
 68 | ```bash
 69 | # Add the server to your claude_desktop_config.json
 70 | "mcpServers": {
 71 |   "sqlite": {
 72 |     "command": "uv",
 73 |     "args": [
 74 |       "--directory",
 75 |       "parent_of_servers_repo/servers/src/sqlite",
 76 |       "run",
 77 |       "mcp-server-sqlite",
 78 |       "--db-path",
 79 |       "~/test.db"
 80 |     ]
 81 |   }
 82 | }
 83 | ```
 84 | 
 85 | ### Docker
 86 | 
 87 | ```json
 88 | # Add the server to your claude_desktop_config.json
 89 | "mcpServers": {
 90 |   "sqlite": {
 91 |     "command": "docker",
 92 |     "args": [
 93 |       "run",
 94 |       "--rm",
 95 |       "-i",
 96 |       "-v",
 97 |       "mcp-test:/mcp",
 98 |       "mcp/sqlite",
 99 |       "--db-path",
100 |       "/mcp/test.db"
101 |     ]
102 |   }
103 | }
104 | ```
105 | 
106 | ## Building
107 | 
108 | Docker:
109 | 
110 | ```bash
111 | docker build -t mcp/sqlite .
112 | ```
113 | 
114 | ## License
115 | 
116 | This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
117 | 
```

--------------------------------------------------------------------------------
/agents/IoTAgent/README.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Fujitsu PrivateGPT MQTT IoT Agent
 2 | The **IoT MQTT Agent** is a Python application that connects to an MQTT broker, processes vehicle data, and logs messages as JSON records. In addition, it communicates with a Chatbot Agent to generate human-readable, logical sentences from raw data. This communication is performed using the standardized FIPA ACL (Agent Communication Language) protocol, ensuring interoperability in multi-agent environments.
 3 | 
 4 | ---
 5 | 
 6 | ## Features
 7 | - **MQTT Communication:**  
 8 |   Connects to an MQTT broker to subscribe to topics and receive vehicle data.
 9 | 
10 | - **Data Logging:**  
11 |   Records incoming messages as JSON records with timestamps, vehicle details, and parameter values. Data is saved locally and rotated based on file size limits.
12 | 
13 | - **Multi-Language Support:**  
14 |   Processes messages in multiple languages (e.g., German and English) and stores generated sentences accordingly.
15 | 
16 | - **Chatbot Agent Integration:**  
17 |   Utilizes a Chatbot Agent to generate logical sentences from incoming MQTT data. The request to the Chatbot Agent is structured as a FIPA ACL message.
18 | 
19 | - **FIPA ACL Standard:**  
20 |   The agent leverages FIPA ACL for structured multi-agent communication. Each message includes standardized fields such as:
21 |   - **Performative:** (`request` or `failure`)
22 |   - **Sender:** (`IoT_MQTT_Agent`)
23 |   - **Receiver:** (`Chatbot_Agent`)
24 |   - **Language:** (`fipa-sl`)
25 |   - **Ontology:** (`fujitsu-iot-ontology`)
26 |   - **Content:** (The JSON parameters used to generate a logical sentence)
27 | 
28 | - **SFTP File Transfer:**  
29 |   When log files exceed a size threshold, they are automatically uploaded to a remote SFTP server, connected to Private GPT bulk upload services, and archived locally.
30 | 
31 | ---
32 | 
33 | ## How It Works
34 | 1. **Configuration Loading:**  
35 |    The agent loads its settings from a JSON configuration file (default: `pgpt_iot_agent.json`), which includes details for MQTT, SFTP, file handling, and the Chatbot Agent.
36 | 
37 | 2. **MQTT Subscription:**  
38 |    Once connected to the MQTT broker, the agent subscribes to a pre-defined topic to receive data from vehicles.
39 | 
40 | 3. **Message Processing & Logging:**  
41 |    Incoming MQTT messages are parsed, timestamped, and saved locally as JSON records. Additionally, the agent displays and logs these records.
42 | 
43 | 4. **Interpreting Data via the Chatbot Agent:**  
44 |    - The agent prepares a prompt based on the received data.
45 |    - It then sends a **FIPA ACL** request to the Chatbot Agent with the necessary details.
46 |    - If the Chatbot Agent returns a failure (e.g., due to a connectivity issue), the IoT Agent waits and retries the request until a successful response is received.
47 |    - Upon receiving an OK response, the agent logs the generated sentence and saves it to a language-specific text file.
48 | 
49 | 5. **File Management:**  
50 |    Files are automatically rotated when they reach a configured size limit, ensuring continuous logging without manual intervention.
51 | 
52 | ---
53 | 
54 | ## Requirements
55 | - **Python 3.x**
56 | 
57 | - **Python Libraries:**  
58 |   The required libraries are listed in `requirements.txt` and include:
59 |   - `paho-mqtt`
60 |   - `paramiko`
61 |   - `requests`
62 |   - Plus standard libraries such as `json`, `logging`, `datetime`, etc.
63 | 
64 | ---
65 | 
66 | ## License
67 | This project is licensed under the MIT License - see the LICENSE file for details.
```

--------------------------------------------------------------------------------
/clients/Gradio/mcp_servers/filesystem/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Filesystem MCP Server
  2 | 
  3 | Node.js server implementing Model Context Protocol (MCP) for filesystem operations.
  4 | 
  5 | ## Features
  6 | 
  7 | - Read/write files
  8 | - Create/list/delete directories
  9 | - Move files/directories
 10 | - Search files
 11 | - Get file metadata
 12 | 
 13 | **Note**: The server will only allow operations within directories specified via `args`.
 14 | 
 15 | ## API
 16 | 
 17 | ### Resources
 18 | 
 19 | - `file://system`: File system operations interface
 20 | 
 21 | ### Tools
 22 | 
 23 | - **read_file**
 24 |   - Read complete contents of a file
 25 |   - Input: `path` (string)
 26 |   - Reads complete file contents with UTF-8 encoding
 27 | 
 28 | - **read_multiple_files**
 29 |   - Read multiple files simultaneously
 30 |   - Input: `paths` (string[])
 31 |   - Failed reads won't stop the entire operation
 32 | 
 33 | - **write_file**
 34 |   - Create new file or overwrite existing (exercise caution with this)
 35 |   - Inputs:
 36 |     - `path` (string): File location
 37 |     - `content` (string): File content
 38 | 
 39 | - **edit_file**
 40 |   - Make selective edits using advanced pattern matching and formatting
 41 |   - Features:
 42 |     - Line-based and multi-line content matching
 43 |     - Whitespace normalization with indentation preservation
 44 |     - Fuzzy matching with confidence scoring
 45 |     - Multiple simultaneous edits with correct positioning
 46 |     - Indentation style detection and preservation
 47 |     - Git-style diff output with context
 48 |     - Preview changes with dry run mode
 49 |     - Failed match debugging with confidence scores
 50 |   - Inputs:
 51 |     - `path` (string): File to edit
 52 |     - `edits` (array): List of edit operations
 53 |       - `oldText` (string): Text to search for (can be substring)
 54 |       - `newText` (string): Text to replace with
 55 |     - `dryRun` (boolean): Preview changes without applying (default: false)
 56 |     - `options` (object): Optional formatting settings
 57 |       - `preserveIndentation` (boolean): Keep existing indentation (default: true)
 58 |       - `normalizeWhitespace` (boolean): Normalize spaces while preserving structure (default: true)
 59 |       - `partialMatch` (boolean): Enable fuzzy matching (default: true)
 60 |   - Returns detailed diff and match information for dry runs, otherwise applies changes
 61 |   - Best Practice: Always use dryRun first to preview changes before applying them
 62 | 
 63 | - **create_directory**
 64 |   - Create new directory or ensure it exists
 65 |   - Input: `path` (string)
 66 |   - Creates parent directories if needed
 67 |   - Succeeds silently if directory exists
 68 | 
 69 | - **list_directory**
 70 |   - List directory contents with [FILE] or [DIR] prefixes
 71 |   - Input: `path` (string)
 72 | 
 73 | - **move_file**
 74 |   - Move or rename files and directories
 75 |   - Inputs:
 76 |     - `source` (string)
 77 |     - `destination` (string)
 78 |   - Fails if destination exists
 79 | 
 80 | - **search_files**
 81 |   - Recursively search for files/directories
 82 |   - Inputs:
 83 |     - `path` (string): Starting directory
 84 |     - `pattern` (string): Search pattern
 85 |     - `excludePatterns` (string[]): Exclude any patterns. Glob formats are supported.
 86 |   - Case-insensitive matching
 87 |   - Returns full paths to matches
 88 | 
 89 | - **get_file_info**
 90 |   - Get detailed file/directory metadata
 91 |   - Input: `path` (string)
 92 |   - Returns:
 93 |     - Size
 94 |     - Creation time
 95 |     - Modified time
 96 |     - Access time
 97 |     - Type (file/directory)
 98 |     - Permissions
 99 | 
100 | - **list_allowed_directories**
101 |   - List all directories the server is allowed to access
102 |   - No input required
103 |   - Returns:
104 |     - Directories that this server can read/write from
105 | 
106 | ## Usage with Claude Desktop
107 | Add this to your `claude_desktop_config.json`:
108 | 
109 | Note: you can provide sandboxed directories to the server by mounting them to `/projects`. Adding the `ro` flag will make the directory readonly by the server.
110 | 
111 | ### Docker
112 | Note: all directories must be mounted to `/projects` by default.
113 | 
114 | ```json
115 | {
116 |   "mcpServers": {
117 |     "filesystem": {
118 |       "command": "docker",
119 |       "args": [
120 |         "run",
121 |         "-i",
122 |         "--rm",
123 |         "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
124 |         "--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
125 |         "--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
126 |         "mcp/filesystem",
127 |         "/projects"
128 |       ]
129 |     }
130 |   }
131 | }
132 | ```
133 | 
134 | ### NPX
135 | 
136 | ```json
137 | {
138 |   "mcpServers": {
139 |     "filesystem": {
140 |       "command": "npx",
141 |       "args": [
142 |         "-y",
143 |         "@modelcontextprotocol/server-filesystem",
144 |         "/Users/username/Desktop",
145 |         "/path/to/other/allowed/dir"
146 |       ]
147 |     }
148 |   }
149 | }
150 | ```
151 | 
152 | ## Build
153 | 
154 | Docker build:
155 | 
156 | ```bash
157 | docker build -t mcp/filesystem -f src/filesystem/Dockerfile .
158 | ```
159 | 
160 | ## License
161 | 
162 | This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
163 | 
```

--------------------------------------------------------------------------------
/agents/OpenAI_Compatible_API_Agent/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # PrivateGPT OpenAI-Compatible API Agent
  2 | 
  3 | ## Description
  4 | The PrivateGPT OpenAI-Compatible API Agent is a client that communicates with a private GPT server and provides an interface to openai-compatible libraries and tools.
  5 | It comes in two variations. Variation 1 (*openai_compatible_api.py*) uses the PrivateGPT API directly, Variation 2 (*openai_mcp_api.py*) uses communicates through the PrivateGPT MCP Server.
  6 | 
  7 | ---
  8 | 
  9 | ## Prerequisites
 10 | - Python 3.8 or higher
 11 | - Access to the PrivateGPT server
 12 | - For Variation 2, access to MCP server
 13 | 
 14 | ---
 15 | 
 16 | ## Setup
 17 | 1. **Clone the repository:**
 18 |     ```bash
 19 |     git clone [https://github.com/Fujitsu-AI/MCP-Server-for-MAS-Developments.git](https://github.com/Fujitsu-AI/MCP-Server-for-MAS-Developments.git)
 20 |     cd MCP-Server-for-MAS-Developments
 21 |     ```
 22 | 
 23 | 2. **Optional: Create and activate a virtual environment:**
 24 |     ```bash
 25 |     python -m venv venv
 26 |     ```
 27 | 
 28 |     - **Windows:**
 29 |         ```bash
 30 |         .\venv\Scripts\activate
 31 |         ```
 32 | 
 33 |     - **Unix/MacOS:**
 34 |         ```bash
 35 |         source venv/bin/activate
 36 |         ```
 37 | 
 38 | 3. **Install dependencies:**
 39 |     ```bash
 40 |     pip install -r .\agents\OpenAI_Compatible_API_Agent\requirements.txt
 41 |     ```
 42 | 
 43 | 4. **Customise configuration file:**
 44 | 
 45 |    - 4.1 **OpenAI-Compatible API via PrivateGPT API:**
 46 | 
 47 |        Copy the `pgpt_api_proxy.json.example` file to `pgpt_api_proxy.json` e.g. with  `cp  .\agents\OpenAI_Compatible_API_Agent\pgpt_api_proxy.json.example  .\agents\OpenAI_Compatible_API_Agent\pgpt_api_proxy.json`
 48 |        Make sure that the `pgpt_api_proxy.json` is configured correctly and contains all necessary fields. The file should look like this:
 49 |        ```json
 50 |         {
 51 |             "base_url": "<Url to your private GPT instance>",
 52 |             "proxy_user": "<Proxy User>",
 53 |             "proxy_password": "<Proxy Password>",
 54 |             "access_header": "<Access Header>",
 55 |             "groups": ["<Groups to access>"],
 56 |             "language": "en",
 57 |             "use_public": true,
 58 |             "api_ip": "0.0.0.0",
 59 |             "api_port": 8001,
 60 |             "whitelist_keys": []
 61 |         }
 62 |        ```
 63 |       - 4.2 **OpenAI-Compatible API via MCP Server:**
 64 | 
 65 |        Copy the `pgpt_openai_api_mcp.json.example` file to `pgpt_openai_api_mcp.json` e.g. with  `cp .\pgpt_openai_api_mcp.json.example .\pgpt_openai_api_mcp.json`
 66 |        Make sure that the `pgpt_openai_api_mcp.json` is configured correctly and contains all necessary fields. The file should look like this:
 67 |        ```json
 68 |         {
 69 |             "email": "<Your PrivateGPT account>",
 70 |             "password": "<Your PrivateGPT password>",
 71 |             "groups": ["<Groups to access>"],
 72 |             "language": "en",
 73 |             "api_ip": "0.0.0.0",
 74 |             "api_port": 8002,
 75 |             "whitelist_keys": [],
 76 |             "mcp_server": {
 77 |                 "host": "127.0.0.1",
 78 |                 "port": 5000
 79 |             }
 80 |         }
 81 |        ```
 82 | 
 83 |     
 84 | 5. **Start the AI agents:**
 85 |    - 5.1 **Start the OpenAI-compatible API agent that uses the PrivateGPT API directly:**
 86 |      ```bash
 87 |      python -m agents.OpenAI_Compatible_API_Agent.Python.openai_compatible_api
 88 |      ```
 89 | 
 90 |    - 5.2 **Start the OpenAI-compatible API agent that uses the MCP server to communicate:**
 91 |      ```bash
 92 |      python -m agents.OpenAI_Compatible_API_Agent.Python.openai_mcp_api
 93 |      ```
 94 |     - 5.3 **In order to run the OpenAI Compatible Agent with Docker:**
 95 |         Make sure Docker is installed on your System.
 96 |         ```bash
 97 |         cd agents\OpenAI_Compatible_API_Agent
 98 |         ```
 99 |        To build and run Docker in Foreground:
100 |         ```bash
101 |         docker compose up --build 
102 |         ```
103 |          To build and run Docker in Background:
104 |         ```bash
105 |         docker compose up --build -d
106 |         ```
107 |    
108 | 
109 | 
110 | 6. **Generate API key**
111 |     Generate a key with the following command:
112 |     ```bash
113 |      python -m agents.OpenAI_Compatible_API_Agent.Python.generate_api_key --email "<PrivateGPT account>" --password "<PrivateGPT Password>"
114 |      ```
115 |     This API key can be used for OpenAI compatible Clients. Make sure you either enter it to the config under whitelist_keys (see 4.1 and 4.2) or whitelist_keys is empty (no check, but prone to errors)
116 | ---
117 | 
118 | ## Utilisation
119 | - **Use libraries (like litellm, ollama, smolagents) or tools (like Msty) to use PrivateGPT with the OpenAI API interface:**
120 |   
121 | Some example usages for external tools:
122 | 
123 | - Usage in Msty:
124 |   - To use the API in MSTY, add a remote server and add "<http://ip:port>" and your API key 
125 | 
126 | - Usage in Continue:
127 |   -   To use the API in Continue (Visual Studio/Pycharm Plugin) add this to your config:
128 | ```json
129 |   {
130 |       "model": "privategpt",
131 |       "title": "PrivateGPT",
132 |       "systemMessage": "You are an expert software developer. You give helpful and concise responses.",
133 |       "apiKey": "<your-api-key>",
134 |       "apiBase": "http://<ip:port>",
135 |       "provider": "openai"
136 |     }
137 | ```
138 | 
139 | - Usage with OpenAI Library:
140 |   - See openai_test_client.py for an example. 
141 | ---
142 | 
143 | ## License
144 | This project is licensed under the MIT License - see the LICENSE file for details.
```

--------------------------------------------------------------------------------
/agents/ChatBotAgent/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | 
  2 | # PrivateGPT ChatBot Agent
  3 | 
  4 | ## Overview
  5 | The **PrivateGPT ChatBot Agent** is a crucial component of the Fujitsu PrivateGPT multi-agent system. It acts as a client that communicates with a private GPT server to respond to queries and provide information. This agent leverages both local knowledge databases and server-based responses, employing **FIPA ACL (Agent Communication Language)** to standardize communications within the system.
  6 | 
  7 | ---
  8 | 
  9 | ## Features
 10 | - **Multi-Agent Communication via FIPA ACL:**  
 11 |   - Handles structured messages with standardized fields such as `performative`, `sender`, `receiver`, `ontology`, and `content`.
 12 |   - Sends FIPA ACL failure messages if a connection to the MCP server cannot be established.
 13 |   
 14 | - **Production WSGI Servers: Waitress & Gunicorn:**  
 15 |   - Manages RESTful endpoints (e.g., `/ask`, `/logs`, `/status`) using Flask.
 16 |   - Uses Waitress for serving requests in Windows environments and Gunicorn for Unix-based systems, ensuring readiness for production environments.
 17 |   - Implements Cross-Origin Resource Sharing (CORS) to allow requests from any domain (`origins: "*"`) for broad compatibility.
 18 |   
 19 | - **Authentication:**  
 20 |   - All endpoints, except for `OPTIONS` and `/status`, require an API key sent via the `X-API-KEY` header.
 21 |   
 22 | - **MCP Server Connectivity:**  
 23 |   - Ensures connectivity to the MCP server (as defined in `config.json`) is validated before processing requests.
 24 |   
 25 | - **Logging:**  
 26 |   - Maintains detailed logs for both the agent operations (`agent.log`) and the Flask server (`flask.log`).
 27 | 
 28 | ## Prerequisites
 29 | - **Python:** Version 3.8 or higher
 30 | - **Dependencies:**  
 31 |   Install the required packages listed in the corresponding `requirements.txt` which includes Flask, waitress (for Windows), gunicorn (for Unix-based systems), flask-cors, paho-mqtt, paramiko, etc.
 32 | 
 33 | ---
 34 | 
 35 | ## Setup
 36 | 1. **Clone the Repository:**
 37 |    ```bash
 38 |    git clone https://github.com/pgpt-dev/MCP-Server-for-MAS-Developments.git
 39 |    cd MCP-Server-for-MAS-Developments
 40 |    ```
 41 | 
 42 | 2. **(Optional) Create and Activate a Virtual Environment:**
 43 |    - **Windows:**
 44 |      ```bash
 45 |      python -m venv venv
 46 |      .\venv\Scripts\activate
 47 |      ```
 48 |    - **Unix/MacOS:**
 49 |      ```bash
 50 |      python -m venv venv
 51 |      source venv/bin/activate
 52 |      ```
 53 | 
 54 | 3. **Install Dependencies:**
 55 |    ```bash
 56 |    pip install -r agents/ChatBotAgent/requirements.txt
 57 |    ```
 58 | 
 59 | 4. **Configure the Agent:**
 60 |    Copy the example configuration file and adjust it according to your environment:
 61 | 
 62 |    ```bash
 63 |    cp agents/ChatBotAgent/config.json.example agents/ChatBotAgent/config.json
 64 |    ```
 65 | 
 66 |    **Example `config.json`:**
 67 | 
 68 |    ```json
 69 |    {
 70 |        "email": "<YOUR EMAIL>",
 71 |        "password": "<YOUR PASSWORD>",
 72 |        "api_ip": "0.0.0.0",
 73 |        "api_port": 5001,
 74 |        "api_key": "<YOUR_API_KEY>",
 75 |        "mcp_server": {
 76 |            "host": "172.24.123.123",
 77 |            "port": 5000
 78 |        },
 79 |        "language": "en",
 80 |        "groups": ["<Your Group>"]
 81 |    }
 82 |    ```
 83 | 
 84 |    **Note:** All sensitive parameters, such as `email` and `password`, should be securely stored and managed.
 85 | 
 86 | ## Running the Agent
 87 | - **Using Waitress (Windows):**
 88 |   To start the ChatBot Agent, ensure you are in the repository's root directory and execute:
 89 | 
 90 |   ```bash
 91 |   python -m agents.ChatBotAgent.Python.chatbot_agent
 92 |   ```
 93 | 
 94 | - **Using Gunicorn (Unix-based systems):**
 95 |   To start the application using Gunicorn, run the following command:
 96 | 
 97 |   ```bash
 98 |   gunicorn -w 4 -b 0.0.0.0:5001 agents.ChatBotAgent.Python.chatbot_agent:app
 99 |   ```
100 | 
101 |   This command launches the Flask API server using Gunicorn on the configured `api_ip` and `api_port` and uses multiple workers to handle requests efficiently. The `fcntl` package is needed to run this under Linux, use `pip` to install it.
102 | 
103 | ---
104 | 
105 | ## API Endpoints
106 | 
107 | ### `/ask` (POST)
108 | - **Purpose:**  
109 |   Accepts questions for the ChatBot Agent. This endpoint supports both a **FIPA ACL** structured message and a legacy JSON format.
110 |   
111 | - **Authentication:**  
112 |   Requires the `X-API-KEY` header with the correct API key.
113 |   
114 | - **FIPA ACL Request Example:**
115 | 
116 |   ```json
117 |   {
118 |       "performative": "request",
119 |       "sender": "IoT_MQTT_Agent",
120 |       "receiver": "Chatbot_Agent",
121 |       "ontology": "fujitsu-iot-ontology",
122 |       "content": {
123 |           "question": "What is the system status?",
124 |           "usePublic": false,
125 |           "groups": ["group1"],
126 |           "language": "en"
127 |       }
128 |   }
129 |   ```
130 | 
131 | - **Legacy JSON Request Example:**
132 | 
133 |   ```json
134 |   {
135 |       "question": "What is the system status?",
136 |       "usePublic": false,
137 |       "groups": ["group1"],
138 |       "language": "en"
139 |   }
140 |   ```
141 |   
142 | - **Response:**  
143 |   Returns a JSON object containing the answer generated by the PrivateGPT server. If the MCP server connection fails, a FIPA ACL failure message is returned.
144 | 
145 | ### `/logs` (GET)
146 | - **Purpose:**  
147 |   Provides access to the Flask server's log file (`flask.log`) for debugging and monitoring purposes.
148 | 
149 | ### `/status` (GET)
150 | - **Purpose:**  
151 |   Outputs a simple JSON message confirming that the agent is operational. This endpoint does **not** require authentication.
152 |   
153 | ---
154 | 
155 | ## Multi-Agent Communication & FIPA ACL
156 | The ChatBot Agent utilizes **FIPA ACL** to structure its communications with other agents, ensuring reliable interactions within a multi-agent system. It provides standardized message fields for consistency and effective communication.
157 | 
158 | ---
159 | 
160 | ## Logging & Debugging
161 | - **Agent Logs:**  
162 |   Key events, errors, and status updates are logged in `agent.log`.
163 | 
164 | - **Flask Logs:**  
165 |   Logs specific to the Flask server are stored in `flask.log`.
166 | 
167 | These logs are critical for troubleshooting and provide insights into the agent's operation.
168 | 
169 | ---
170 | 
171 | ## Example Conversation
172 | ```plaintext
173 | 🎉 Welcome to the PrivateGPT ChatBot Agent.
174 | You: What is your name?
175 | Agent: I am the PrivateGPT ChatBot Agent.
176 | You: Provide system status.
177 | Agent: The system is running normally.
178 | ```
179 | 
180 | ---
181 | 
182 | 
183 | 
```

--------------------------------------------------------------------------------
/agents/AgentMonitoring/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # README
  2 | 
  3 | ## Overview
  4 | To monitor the three different **agents**, each providing Prometheus metrics so they can be monitored in **Prometheus** and visualized in **Grafana**:
  5 | 
  6 | 1. **OpenAI-Compatible API Agent**  
  7 |    - By default runs on **port 7777** and serves `/metrics`.
  8 | 2. **Chatbot Agent**  
  9 |    - Runs on **port 5001** (by default), and also exposes `/metrics` (or configurable via JSON).
 10 | 3. **IoT MQTT Agent**  
 11 |    - Runs on a **Prometheus port** specified in its JSON config (e.g., `9101`), providing `/metrics` via a custom WSGI server.
 12 | 
 13 | ### Requirements
 14 | - Install each agent’s dependencies (e.g., via `pip install -r requirements.txt`), including the **`prometheus_client`** library.hon 3.8+** is
 15 | - You need **Prometheus** and **Grafana** set up to ingest and display these metrics.
 16 | 
 17 | ---
 18 | 
 19 | ## 1. OpenAI-Compatible API Agent
 20 | - By default, runs on **port 7777**.
 21 | - `/metrics` will be served at **`http://<host>:7777/metrics`**.
 22 | 
 23 | ### How to Start
 24 | Switch to the agent’s directory and start the agent as desribed in the agent's `README.md`
 25 | 
 26 | You should see in the logs something like:
 27 | ```
 28 | Starting API on http://0.0.0.0:7777
 29 | Starting Prometheus metrics server on port 7777...
 30 | ```
 31 | 
 32 | ### Metrics
 33 | - Typical metrics might include:
 34 |   - `request_count{method,endpoint}`
 35 |   - `request_latency_seconds{method,endpoint}`
 36 |   - `chat_completion_count`
 37 |   - `completion_count`
 38 |   - etc.
 39 | 
 40 | **Note:** Search and select the metrics that suit you in the Grafana dashboard.
 41 | 
 42 | ---
 43 | 
 44 | ## 2. Chatbot Agent
 45 | - Runs on **port 5001** by default.
 46 | - Also serves Prometheus metrics under **`http://<host>:5001/metrics`** (or whichever port is in use).
 47 | 
 48 | ### How to Start
 49 | Switch to the agent’s directory and start the agent as desribed in the agent's `README.md`
 50 | 
 51 | You’ll see logs like:
 52 | ```
 53 | Starting API server on 0.0.0.0:5001
 54 | Starting Prometheus WSGI server on port 5001...
 55 | ```
 56 | Then `/metrics` is accessible.
 57 | 
 58 | ### Metrics
 59 | - Common metrics:
 60 |   - `request_count` / `request_latency_seconds`
 61 |   - `agent_ask_count`
 62 |   - etc.
 63 | 
 64 | **Note:** Search and select the metrics that suit you in the Grafana dashboard.
 65 | 
 66 | ---
 67 | 
 68 | ## 3. IoT MQTT Agent
 69 | - Reads a **port** from its JSON config (`pgpt_iot_agent.json`), e.g.:
 70 | 
 71 |   ```json
 72 |   {
 73 |     "metrics": {
 74 |       "port": 9101
 75 |     }
 76 |     ...
 77 |   }
 78 |   ```
 79 | 
 80 | - The agent starts a small WSGI server on `metrics.port` and exposes `/metrics`.
 81 | 
 82 | ### How to Start
 83 | Switch to the agent’s directory and start the agent as desribed in the agent's `README.md`
 84 | 
 85 | Logs should show:
 86 | ```
 87 | Starting Prometheus WSGI server on port 9101...
 88 | ```
 89 | Hence `http://<host>:9101/metrics` gives the metrics.
 90 | 
 91 | ### Metrics
 92 | - For example:
 93 |   - `mqtt_message_count` (number of MQTT messages received)
 94 |   - `mqtt_message_latency_seconds` (histogram measuring processing latency)
 95 | 
 96 | **Note:** Search and select the metrics that suit you in the Grafana dashboard.
 97 | 
 98 | ---
 99 | 
100 | ## 4. Prometheus Configuration
101 | To let Prometheus scrape these metrics, add **targets** for all three agents in your `prometheus.yml`. For example:
102 | 
103 | ```yaml
104 | global:
105 |   scrape_interval: 15s
106 |   evaluation_interval: 15s
107 | 
108 | scrape_configs:
109 | 
110 |   # 1) OpenAI-Compatible API Agent
111 |   - job_name: "openai_compatible_agent"
112 |     scrape_interval: 5s
113 |     static_configs:
114 |       - targets:
115 |           - "192.168.123.123:7777"  # your openai compatible API agent ip and port
116 | 
117 |   # 2) Chatbot Agent
118 |   - job_name: "chatbot_agent"
119 |     scrape_interval: 5s
120 |     static_configs:
121 |       - targets:
122 |           - "192.168.123.123:5001"  # your chatbot ip and port
123 | 
124 |   # 3) IoT MQTT Agent
125 |   - job_name: "iot_mqtt_agent"
126 |     scrape_interval: 5s
127 |     static_configs:
128 |       - targets:
129 |           - "192.168.123.123:9101"  # your IoT agent ip and port
130 | ```
131 | 
132 | > Change **`192.168.123.123`** to your actual IP or hostname; use `localhost` (`127.0.0.1`) if everything is local.  
133 | > And verify the ports:  
134 | > - **`7777`** (OpenAI-Compatible)  
135 | > - **`5001`** (Chatbot)  
136 | > - **`9101`** (IoT)
137 | 
138 | Once Prometheus is running (e.g., via Docker or binary), navigate to `http://<prometheus-host>:9090/targets` and confirm all three jobs appear and show **UP**:
139 | 
140 | ![Prometheus Targets Example](images/Prometheus.png)
141 | 
142 | ---
143 | 
144 | ## 5. Grafana Dashboards
145 | This repo provides **Grafana Dashboard JSON** files for each agent. You can import them to visualize the metrics.
146 | 
147 | ### A) OpenAI-Compatible API Agent Dashboard
148 | - File: `OpenAI compatible API - Agent Dashboard Example - Grafana.json` (example)
149 | - Contains panels such as:
150 |   - *Request Count (rate)*
151 |   - *Request Latency (p95)*
152 |   - *Chat Completion Count*
153 |   - and more.
154 | 
155 | #### Import Procedure
156 | 1. In Grafana: **Dashboards** → **Import**.
157 | 2. Paste the JSON from `OpenAI compatible API - Agent Dashboard Example - Grafana.json`.
158 | 3. Select your **Prometheus** data source.
159 | 4. Click **Import**.
160 | 
161 | ### B) Chatbot Agent Dashboard
162 | - File: `ChatBot-Agent Dashboard Example - Grafana.json`.
163 | - Shows metrics such as `agent_ask_count`, `request_latency_seconds`, etc.
164 | 
165 | #### Import Steps
166 | 1. Go to Grafana → **Import**.
167 | 2. Paste the JSON content.
168 | 3. Select your Prometheus data source.
169 | 4. Save the dashboard.
170 | 
171 | Example below:
172 | 
173 | ![Grafana Chatbot Example](images/Grafana.png)
174 | 
175 | ### C) IoT MQTT Agent Dashboard
176 | - File: `IoT-Agent Dashboard Example - Grafana.json`.
177 | - Example panels:
178 |   - Rate of MQTT messages (`rate(mqtt_message_count[1m])`)
179 |   - Total MQTT messages
180 |   - Latencies (e.g., 95th percentile for `mqtt_message_latency_seconds_bucket`)
181 | 
182 | #### Import Steps
183 | Identical approach:
184 | 1. **Dashboards** → **Import**.
185 | 2. Paste JSON from `IoT-Agent Dashboard Example - Grafana.json`.
186 | 3. Pick **Prometheus** as the data source.
187 | 
188 | ---
189 | 
190 | ## 6. Parameters to Adjust
191 | 1. **Agent Ports**  
192 |    - Update ports in the respective JSON configs or Python code to avoid port collisions.  
193 |    - Defaults:
194 |      - **OpenAI-Compatible**: `7777`  
195 |      - **Chatbot**: `5001`  
196 |      - **IoT**: `9101` (via `metrics.port` in JSON)
197 | 
198 | 2. **Prometheus `prometheus.yml`**  
199 |    - Change the **targets** to match your IP addresses/ports.  
200 |    - Adjust `scrape_interval` if needed (default is 15s).
201 | 
202 | 3. **Grafana**  
203 |    - When importing each JSON, make sure to choose **the correct Prometheus data source** if you have multiple.  
204 |    - If panels show “No data,” double-check that Prometheus is indeed scraping the relevant metrics.
205 | 
206 | ---
207 | 
208 | ## 7. Troubleshooting
209 | - **“No data”** in Grafana:
210 |   - Check Prometheus at `/targets` to see if the jobs are **UP**.
211 |   - Check Prometheus’s expression browser for the metrics (e.g., `mqtt_message_count`).
212 | - **Port collisions**:
213 |   - If `7777`, `5001`, `9101` are already in use, adjust them in code/JSON.
214 | - **Authentication errors**:
215 |   - If the agent has an API key for `/metrics`, you may need to disable that or specifically allow `/metrics` to be unauthenticated.
216 | - **Docker environment**:
217 |   - Ensure you map the correct ports (e.g., `-p 5001:5001`) and use the correct IP addresses.
218 | 
219 | ---
220 | 
221 | ## Conclusion
222 | With these three agents, you can gather both **LLM-related** (OpenAI-Compatible & Chatbot) and **IoT-related** (MQTT agent) metrics in **Prometheus**, then visualize everything in **Grafana** using the provided dashboards. Enjoy your fully monitored environment!
```

--------------------------------------------------------------------------------
/clients/Go/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # MCP Client Examples (Go)
  2 | This repository contains examples for interacting with the MCP server using **Go**. Each console application demonstrates a specific operation and its corresponding server interaction.
  3 | 
  4 | ## Main Menu
  5 | Choose an operation from the list below. Each example demonstrates a specific server interaction.
  6 | 
  7 | ### 1. Authentication
  8 | [1.1 Login User](#10-mcploginclient)
  9 | [1.2 Logout User](#12-mcplogoutclient)
 10 | 
 11 | ### 2. Chat Operations
 12 | [2.1 Start a New Chat](#20-mcpchatclient)
 13 | [2.2 Continue a Chat Session](#21-mcpcontinuechatclient)
 14 | [2.3 Retrieve Chat Info](#22-mcpgetchatinfoClient)
 15 | 
 16 | ### 3. Source Management
 17 | [3.1 Create a New Source](#30-mcpcreatesourceclient)
 18 | [3.2 Retrieve Source Details](#31-mcpgetsourceclient)
 19 | [3.3 List All Sources in a Group](#32-mcplistsourcesclient)
 20 | [3.4 Edit an Existing Source](#33-mcpeditsourceclient)
 21 | [3.5 Delete a Source](#34-mcpdeletesourceclient)
 22 | 
 23 | ### 4. Group Management
 24 | [4.1 List All Groups](#40-mcplistgroupsclient)
 25 | [4.2 Create/Update a Group](#41-mcpstoregroupclient)
 26 | [4.3 Delete a Group](#42-mcpdeletegroupclient)
 27 | 
 28 | ### 5. User Management
 29 | [5.1 Create/Update a User](#50-mcpstoreuserclient)
 30 | [5.2 Edit User Details](#51-mcpedituserclient)
 31 | [5.3 Delete a User](#52-mcpdeleteuserclient)
 32 | 
 33 | ---
 34 | 
 35 | 
 36 | ### 1.0 MCPLoginClient
 37 | - **Purpose**: Handles user authentication by sending login requests to the MCP server.
 38 | 
 39 | - **Main Features**:
 40 |   - Sends a `login` command to the server with user credentials.
 41 |   - Handles JSON-based requests and parses the server's response.
 42 |   
 43 | - **Key Arguments**:
 44 |   - `--server-ip`: IP address of the MCP server.
 45 |   - `--server-port`: Port number of the MCP server.
 46 |   - `--email`: User email for authentication.
 47 |   - `--password`: User password for authentication.
 48 |   
 49 | - **Usage Example**:
 50 |   ```bash
 51 |   MCPLoginClient.exe --server-ip 127.0.0.1 --server-port 1234 --email [email protected] --password secret
 52 |   ```
 53 | 
 54 | ### 1.2 MCPLogoutClient
 55 | - **Purpose**: Logs out an authenticated user by invalidating their session token.
 56 | 
 57 | - **Main Features**:
 58 |   - Sends a `logout` command to the server.
 59 |   - Invalidates the token provided in the request.
 60 |   
 61 | - **Key Arguments**:
 62 |   - `--server-ip`: IP address of the MCP server.
 63 |   - `--server-port`: Port number of the MCP server.
 64 |   - `--token`: Authentication token to be invalidated.
 65 |   
 66 | - **Usage Example**:
 67 |   ```bash
 68 |   MCPLogoutClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken
 69 |   ```
 70 | 
 71 | ---
 72 | 
 73 | ### 2.0 MCPChatClient
 74 | - **Purpose**: Initiates a new chat session with the MCP server.
 75 | 
 76 | - **Main Features**:
 77 |   - Sends a `chat` command to the server with a question.
 78 |   - Supports optional parameters for public chats, groups, and language.
 79 |   
 80 | - **Key Arguments**:
 81 |   - `--server-ip`: IP address of the MCP server.
 82 |   - `--server-port`: Port number of the MCP server.
 83 |   - `--token`: Authentication token.
 84 |   - `--question`: Initial question for the chat session.
 85 |   - `--use-public`: Optional flag for public chat.
 86 |   - `--groups`: Optional group list.
 87 |   - `--language`: Optional language parameter.
 88 |   
 89 | - **Usage Example**:
 90 |   ```bash
 91 |   MCPChatClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --question "Hello World" --use-public --groups "devops,hr" --language en
 92 |   ```
 93 | 
 94 | ### 2.1 MCPContinueChatClient
 95 | - **Purpose**: Continues an existing chat session by sending follow-up messages.
 96 | 
 97 | - **Main Features**:
 98 |   - Sends a `continue_chat` command to the server.
 99 |   - Provides the conversation ID and follow-up message.
100 |   
101 | - **Key Arguments**:
102 |   - `--server-ip`: IP address of the MCP server.
103 |   - `--server-port`: Port number of the MCP server.
104 |   - `--token`: Authentication token.
105 |   - `--conversation-id`: ID of the conversation to continue.
106 |   - `--message`: Follow-up message.
107 |   
108 | - **Usage Example**:
109 |   ```bash
110 |   MCPContinueChatClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --conversation-id 12345 --message "Can you provide an update?"
111 |   ```
112 | 
113 | ### 2.2 MCPGetChatInfoClient
114 | - **Purpose**: Retrieves metadata and status information about an existing chat session.
115 | 
116 | - **Main Features**:
117 |   - Sends a `get_chat_info` command to the server.
118 |   - Extracts and displays information about the chat session.
119 |   
120 | - **Key Arguments**:
121 |   - `--server-ip`: IP address of the MCP server.
122 |   - `--server-port`: Port number of the MCP server.
123 |   - `--token`: Authentication token.
124 |   - `--chat-id`: ID of the chat session to retrieve information for.
125 |   
126 | - **Usage Example**:
127 |   ```bash
128 |   MCPGetChatInfoClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --chat-id 6789
129 |   ```
130 | 
131 | ---
132 | 
133 | ### 3.0 MCPCreateSourceClient
134 | - **Purpose**: Creates a new source on the MCP server and associates it with specified groups.
135 | 
136 | - **Main Features**:
137 |   - Sends a `create_source` command with details such as name, content, and associated groups.
138 |   - Provides robust error handling for missing arguments and server communication issues.
139 | 
140 | - **Key Arguments**:
141 |   - `--server-ip`: IP address of the MCP server.
142 |   - `--server-port`: Port number of the MCP server.
143 |   - `--token`: Authentication token for the session.
144 |   - `--name`: Name of the source to create.
145 |   - `--content`: Content of the source in plain text or markdown.
146 |   - `--groups`: (Optional) List of groups to associate with the source.
147 | 
148 | - **Usage Example**:
149 | ```bash
150 | MCPCreateSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --name "Sample Source" --content "This is a test content" --groups devops hr
151 | ```
152 | 
153 | ---
154 | 
155 | ### 3.1 MCPGetSourceClient
156 | - **Purpose**: Fetches detailed information about a specific source from the MCP server.
157 | 
158 | - **Main Features**:
159 |   - Sends a `get_source` command to the server with the source ID as a parameter.
160 |   - Retrieves and displays the source's metadata and contents.
161 | 
162 | - **Key Arguments**:
163 |   - `--server-ip`: IP address of the MCP server.
164 |   - `--server-port`: Port number of the MCP server.
165 |   - `--token`: Authentication token for the server.
166 |   - `--source-id`: Unique ID of the source to retrieve.
167 | 
168 | - **Usage Example**:
169 | ```bash
170 | MCPGetSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --source-id 12345
171 | ```
172 | 
173 | ### 3.2 MCPListSourcesClient
174 | - **Purpose**: Lists all sources belonging to a specified group on the MCP server.
175 | 
176 | - **Main Features**:
177 |   - Sends a `list_sources` command with the group name as a parameter.
178 |   - Displays a list of sources available in the specified group.
179 | 
180 | - **Key Arguments**:
181 |   - `--server-ip`: IP address of the MCP server.
182 |   - `--server-port`: Port number of the MCP server.
183 |   - `--token`: Authentication token for the server.
184 |   - `--group-name`: Name of the group for which to list sources.
185 | 
186 | - **Usage Example**:
187 | ```bash
188 | MCPListSourcesClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name devops
189 | ```
190 | 
191 | ### 3.3 MCPEditSourceClient
192 | - **Purpose**: Edits the details of an existing source on the MCP server.
193 | 
194 | - **Main Features**:
195 |   - Sends an `edit_source` command with optional updates for the source title, content, and group associations.
196 |   - Supports adding or updating multiple groups for the source.
197 | 
198 | - **Key Arguments**:
199 |   - `--server-ip`: IP address of the MCP server.
200 |   - `--server-port`: Port number of the MCP server.
201 |   - `--token`: Authentication token for the server. 
202 |   - `--source-id`: ID of the source to edit.
203 |   - `--title`: (Optional) New title for the source.
204 |   - `--content`: (Optional) New content for the source.
205 |   - `--groups`: (Optional) List of groups to associate with the source.
206 | 
207 | - **Usage Example**:
208 | ```bash
209 | MCPEditSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --source-id 12345 --title "Updated Title" --content "Updated content for the source." --groups devops finance
210 | ```
211 | 
212 | ### 3.4 MCPDeleteSourceClient
213 | - **Purpose**: Deletes a specific source from the MCP server.
214 | 
215 | - **Main Features**:
216 |   - Sends a `delete_source` command to remove the source identified by its ID.
217 | 
218 | - **Key Arguments**:
219 |   - `--server-ip`: IP address of the MCP server.
220 |   - `--server-port`: Port number of the MCP server.
221 |   - `--token`: Authentication token for the server.
222 |   - `--source-id`: ID of the source to delete.
223 | 
224 | - **Usage Example**:
225 | ```bash
226 | MCPDeleteSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 -token MyToken --source-id 12345
227 | ```
228 | 
229 | ---
230 | 
231 | ### 4.0 MCPListGroupsClient
232 | - **Purpose**:
233 | Lists all the groups available on the MCP server.
234 | 
235 | - **Main Features**:
236 |   - Sends a `list_groups` command to retrieve the available groups.
237 |   - Outputs the groups in JSON format.
238 | 
239 | - **Key Arguments**:
240 |   - `--server-ip`: IP address of the MCP server.
241 |   - `--server-port`: Port number of the MCP server.
242 |   - `--token`: Authentication token for the session.
243 | 
244 | - **Usage Example**:
245 | ```bash
246 | MCPListGroupsClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken
247 | ```
248 | 
249 | ### 4.1 MCPStoreGroupClient
250 | - **Purpose**:
251 |   - Creates or updates a group on the MCP server.
252 | 
253 | - **Main Features**:
254 |   - Sends a `store_group` command with the group's name and description.
255 |   - Allows creation of new groups or modification of existing ones.
256 | 
257 | - **Key Arguments**:
258 |   - `--server-ip`: IP address of the MCP server.
259 |   - `--server-port`: Port number of the MCP server.
260 |   - `--token`: Authentication token for the session.
261 |   - `--group-name`: Name of the group to create or update.
262 |   - `--description`: (Optional) Description of the group.
263 | 
264 | - **Usage Example**:
265 | ```bash
266 | MCPStoreGroupClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name "Team DevOps" --description "Group for development and operations"
267 | ```
268 | 
269 | ### 4.2 MCPDeleteGroupClient
270 | - **Purpose**:
271 |   - Deletes a specified group from the MCP server.
272 | 
273 | - **Main Features**:
274 |   - Sends a `delete_group` command with the group name.
275 |   - Ensures the group is removed from the server.
276 | 
277 | - **Key Arguments**:
278 |   - `--server-ip`: IP address of the MCP server.
279 |   - `--server-port`: Port number of the MCP server.
280 |   - `--token`: Authentication token for the session.
281 |   - `--group-name`: Name of the group to delete.
282 | 
283 | - **Usage Example**:
284 | ```bash
285 | MCPDeleteGroupClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name "Team DevOps"
286 | ```
287 | 
288 | ---
289 | 
290 | ### 5.0 MCPStoreUserClient
291 | - **Purpose:** Creates or updates user details on the MCP server.
292 | 
293 | - **Main Features:**
294 |   - Sends a `store_user` command with comprehensive user details.
295 |   - Allows specification of default values for language and timezone if not provided.
296 | 
297 | - **Key Arguments:**
298 |   - `--server-ip`: IP address of the MCP server.
299 |   - `--server-port`: Port number of the MCP server.
300 |   - `--token`: Authentication token.
301 |   - `--name`: Name of the user.
302 |   - `--email`: Email address of the user.
303 |   - `--password`: Password for the user account.
304 |   - `--language` (Optional): User's preferred language (default: "en").
305 |   - `--timezone` (Optional): User's timezone (default: "Europe/Berlin").
306 |   - `--roles` (Optional): Roles assigned to the user.
307 |   - `--groups` (Optional): Groups the user belongs to.
308 |   - `--usePublic` (Optional): Flag to set the user as public.
309 |   - `--activateFtp` (Optional): Flag to activate FTP access.
310 |   - `--ftpPassword` (Optional): Password for FTP access.
311 | 
312 | **Usage Example:**
313 | ```bash
314 | MCPStoreUserClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --name John --email [email protected] --password secret --language en --roles admin manager --groups devops finance --usePublic --activateFtp --ftpPassword ftpPass123
315 | ```
316 | 
317 | ### 5.1 MCPEditUserClient
318 | - **Purpose:** Modifies the details of an existing user on the MCP server.
319 | 
320 | - **Main Features:**
321 |   - Sends an `edit_user` command with the specified user details.
322 |   - Supports conditional sending of fields to avoid unnecessary data transmission.
323 | 
324 | - **Key Arguments:**
325 |   - `--server-ip`: IP address of the MCP server.
326 |   - `--server-port`: Port number of the MCP server.
327 |   - `--token`: Authentication token.
328 |   - `--user-id`: ID of the user to modify.
329 |   - `--name` (Optional): New name of the user.
330 |   - `--email` (Optional): New email for the user.
331 |   - `--password` (Optional): New password for the user.
332 |   - `--language` (Optional): New language for the user.
333 |   - `--timezone` (Optional): New timezone for the user.
334 |   - `--roles` (Optional): New roles for the user.
335 |   - `--groups` (Optional): New groups for the user.
336 |   - `--usePublic` (Optional): Flag to set the user as public.
337 |   - `--activateFtp` (Optional): Flag to activate FTP for the user.
338 |   - `--ftpPassword` (Optional): New password for FTP access.
339 | 
340 | - **Usage Example:**
341 | ```bash
342 | MCPEditUserClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --user-id 12345 --name Jane --roles manager devops --groups hr devops
343 | ```
344 | 
345 | ### 5.2 MCPDeleteUserClient
346 | - **Purpose:** Deletes a user from the MCP server.
347 | 
348 | - **Main Features:**
349 |   - Sends a `delete_user` command using the user's email as an identifier.
350 | 
351 | - **Key Arguments:**
352 |   - `--server-ip`: IP address of the MCP server.
353 |   - `--server-port`: Port number of the MCP server.
354 |   - `--email`: Email address of the user to delete.
355 |   - `--token`: Authentication token.
356 | 
357 | - **Usage Example:**
358 | ```bash
359 | MCPDeleteUserClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --email [email protected]
360 | ```
361 | 
362 | ---
363 | 
364 | ## General Notes
365 | **JSON Communication:**
366 | - Each file constructs and sends JSON payloads specific to its functionality.
367 | - Responses from the server are parsed and displayed in JSON format.
368 | 
369 | **Socket Communication:**
370 | - The files use Go's Socket class for establishing TCP connections with the MCP server.
371 | 
372 | **Error Handling:**
373 | - The scripts handle missing or invalid arguments gracefully, printing clear usage instructions where necessary.
374 | 
375 | **Examples:**
376 | - Replace placeholders (e.g., `<SERVER_IP>`, `<TOKEN>`) with actual values relevant to your environment.
377 | 
378 | ## Prerequisites and Dependencies:
379 | 1. **Go Compiler**: Those agents have been build using Go.
380 | 
381 | ## Build 
382 | Each Go console application is designed to perform a specific operation. Below are the details for compiling an example application, in this case MCPKeygenClient:
383 |    ```bash
384 |   go build .\MCPKeygenClient.go
385 |    ```
386 | 
387 | ## Error Handling
388 | Both clients include error handling for:
389 | - Missing or invalid parameters.
390 | - Server connection issues.
391 | - Unexpected server responses.
392 | 
393 | ## Future Enhancements
394 | - Add support for SSL/TLS encryption for secure communication.
395 | - Implement a configuration file to simplify the command-line parameters.
396 | - Enhance error reporting with detailed server-side error codes.
397 | 
398 | ## License
399 | This project is licensed under the MIT License - see the LICENSE file for details.
400 | This repository and/or code is provided "as is" without warranty of any kind, and use is at your own risk.
401 | 
402 | 
403 | 
```

--------------------------------------------------------------------------------
/clients/C# .Net/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # MCP Client Examples (C# .Net)
  2 | This repository contains examples for interacting with the MCP server using **C# .Net**. Each console application demonstrates a specific operation and its corresponding server interaction.
  3 | 
  4 | ### 1. Authentication
  5 | [1.1 Login User](#10-mcploginclient)
  6 | [1.2 Logout User](#12-mcplogoutclient)
  7 | 
  8 | ### 2. Chat Operations
  9 | [2.1 Start a New Chat](#20-mcpchatclient)
 10 | [2.2 Continue a Chat Session](#21-mcpcontinuechatclient)
 11 | [2.3 Retrieve Chat Info](#22-mcpgetchatinfoClient)
 12 | 
 13 | ### 3. Source Management
 14 | [3.1 Create a New Source](#30-mcpcreatesourceclient)
 15 | [3.2 Retrieve Source Details](#31-mcpgetsourceclient)
 16 | [3.3 List All Sources in a Group](#32-mcplistsourcesclient)
 17 | [3.4 Edit an Existing Source](#33-mcpeditsourceclient)
 18 | [3.5 Delete a Source](#34-mcpdeletesourceclient)
 19 | 
 20 | ### 4. Group Management
 21 | [4.1 List All Groups](#40-mcplistgroupsclient)
 22 | [4.2 Create/Update a Group](#41-mcpstoregroupclient)
 23 | [4.3 Delete a Group](#42-mcpdeletegroupclient)
 24 | 
 25 | ### 5. User Management
 26 | [5.1 Create/Update a User](#50-mcpstoreuserclient)
 27 | [5.2 Edit User Details](#51-mcpedituserclient)
 28 | [5.3 Delete a User](#52-mcpdeleteuserclient)
 29 | 
 30 | ---
 31 | 
 32 | ### 1.0 MCPLoginClient
 33 | - **Purpose**: Handles user authentication by sending login requests to the MCP server.
 34 | 
 35 | - **Main Features**:
 36 |   - Sends a `login` command to the server with user credentials.
 37 |   - Handles JSON-based requests and parses the server's response.
 38 |   
 39 | - **Key Arguments**:
 40 |   - `--server-ip`: IP address of the MCP server.
 41 |   - `--server-port`: Port number of the MCP server.
 42 |   - `--email`: User email for authentication.
 43 |   - `--password`: User password for authentication.
 44 |   
 45 | - **Usage Example**:
 46 |   ```bash
 47 |   dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --email [email protected] --password secret
 48 |   ```
 49 | 
 50 | ### 1.2 MCPLogoutClient
 51 | - **Purpose**: Logs out an authenticated user by invalidating their session token.
 52 | 
 53 | - **Main Features**:
 54 |   - Sends a `logout` command to the server.
 55 |   - Invalidates the token provided in the request.
 56 |   
 57 | - **Key Arguments**:
 58 |   - `--server-ip`: IP address of the MCP server.
 59 |   - `--server-port`: Port number of the MCP server.
 60 |   - `--token`: Authentication token to be invalidated.
 61 |   
 62 | - **Usage Example**:
 63 |   ```bash
 64 |   dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken
 65 |   ```
 66 | 
 67 | ---
 68 | 
 69 | ### 2.0 MCPChatClient
 70 | - **Purpose**: Initiates a new chat session with the MCP server.
 71 | 
 72 | - **Main Features**:
 73 |   - Sends a `chat` command to the server with a question.
 74 |   - Supports optional parameters for public chats, groups, and language.
 75 |   
 76 | - **Key Arguments**:
 77 |   - `--server-ip`: IP address of the MCP server.
 78 |   - `--server-port`: Port number of the MCP server.
 79 |   - `--token`: Authentication token.
 80 |   - `--question`: Initial question for the chat session.
 81 |   - `--use-public`: Optional flag for public chat.
 82 |   - `--groups`: Optional group list.
 83 |   - `--language`: Optional language parameter.
 84 |   
 85 | - **Usage Example**:
 86 |   ```bash
 87 |   dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --question "Hello World" --use-public --groups "devops,hr" --language en
 88 |   ```
 89 | 
 90 | ### 2.1 MCPContinueChatClient
 91 | - **Purpose**: Continues an existing chat session by sending follow-up messages.
 92 | 
 93 | - **Main Features**:
 94 |   - Sends a `continue_chat` command to the server.
 95 |   - Provides the conversation ID and follow-up message.
 96 |   
 97 | - **Key Arguments**:
 98 |   - `--server-ip`: IP address of the MCP server.
 99 |   - `--server-port`: Port number of the MCP server.
100 |   - `--token`: Authentication token.
101 |   - `--conversation-id`: ID of the conversation to continue.
102 |   - `--message`: Follow-up message.
103 |   
104 | - **Usage Example**:
105 |   ```bash
106 |   dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --conversation-id 12345 --message "Can you provide an update?"
107 |   ```
108 | 
109 | ### 2.2 MCPGetChatInfo
110 | - **Purpose**: Retrieves metadata and status information about an existing chat session.
111 | 
112 | - **Main Features**:
113 |   - Sends a `get_chat_info` command to the server.
114 |   - Extracts and displays information about the chat session.
115 |   
116 | - **Key Arguments**:
117 |   - `--server-ip`: IP address of the MCP server.
118 |   - `--server-port`: Port number of the MCP server.
119 |   - `--token`: Authentication token.
120 |   - `--chat-id`: ID of the chat session to retrieve information for.
121 |   
122 | - **Usage Example**:
123 |   ```bash
124 |   dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --chat-id 6789
125 |   ```
126 | 
127 | ---
128 | 
129 | ### 3.0 MCPCreateSourceClient
130 | - **Purpose**: Creates a new source on the MCP server and associates it with specified groups.
131 | 
132 | - **Main Features**:
133 |   - Sends a `create_source` command with details such as name, content, and associated groups.
134 |   - Provides robust error handling for missing arguments and server communication issues.
135 | 
136 | - **Key Arguments**:
137 |   - `--server-ip`: IP address of the MCP server.
138 |   - `--server-port`: Port number of the MCP server.
139 |   - `--token`: Authentication token for the session.
140 |   - `--name`: Name of the source to create.
141 |   - `--content`: Content of the source in plain text or markdown.
142 |   - `--groups`: (Optional) List of groups to associate with the source.
143 | 
144 | - **Usage Example**:
145 | ```bash
146 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --name "Sample Source" --content "This is a test content" --groups devops hr
147 | ```
148 | 
149 | ---
150 | 
151 | ### 3.1 MCPGetSourceClient
152 | - **Purpose**: Fetches detailed information about a specific source from the MCP server.
153 | 
154 | - **Main Features**:
155 |   - Sends a `get_source` command to the server with the source ID as a parameter.
156 |   - Retrieves and displays the source's metadata and contents.
157 | 
158 | - **Key Arguments**:
159 |   - `--server-ip`: IP address of the MCP server.
160 |   - `--server-port`: Port number of the MCP server.
161 |   - `--token`: Authentication token for the server.
162 |   - `--source-id`: Unique ID of the source to retrieve.
163 | 
164 | - **Usage Example**:
165 | ```bash
166 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --source-id 12345
167 | ```
168 | 
169 | ### 3.2 MCPListSourcesClient
170 | - **Purpose**: Lists all sources belonging to a specified group on the MCP server.
171 | 
172 | - **Main Features**:
173 |   - Sends a `list_sources` command with the group name as a parameter.
174 |   - Displays a list of sources available in the specified group.
175 | 
176 | - **Key Arguments**:
177 |   - `--server-ip`: IP address of the MCP server.
178 |   - `--server-port`: Port number of the MCP server.
179 |   - `--token`: Authentication token for the server.
180 |   - `--group-name`: Name of the group for which to list sources.
181 | 
182 | - **Usage Example**:
183 | ```bash
184 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name devops
185 | ```
186 | 
187 | ### 3.3 MCPEditSourceClient
188 | - **Purpose**: Edits the details of an existing source on the MCP server.
189 | 
190 | - **Main Features**:
191 |   - Sends an `edit_source` command with optional updates for the source title, content, and group associations.
192 |   - Supports adding or updating multiple groups for the source.
193 | 
194 | - **Key Arguments**:
195 |   - `--server-ip`: IP address of the MCP server.
196 |   - `--server-port`: Port number of the MCP server.
197 |   - `--token`: Authentication token for the server. 
198 |   - `--source-id`: ID of the source to edit.
199 |   - `--title`: (Optional) New title for the source.
200 |   - `--content`: (Optional) New content for the source.
201 |   - `--groups`: (Optional) List of groups to associate with the source.
202 | 
203 | - **Usage Example**:
204 | ```bash
205 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --source-id 12345 --title "Updated Title" --content "Updated content for the source." --groups devops finance
206 | ```
207 | 
208 | ### 3.4 MCPDeleteSourceClient
209 | - **Purpose**: Deletes a specific source from the MCP server.
210 | 
211 | - **Main Features**:
212 |   - Sends a `delete_source` command to remove the source identified by its ID.
213 | 
214 | - **Key Arguments**:
215 |   - `--server-ip`: IP address of the MCP server.
216 |   - `--server-port`: Port number of the MCP server.
217 |   - `--token`: Authentication token for the server.
218 |   - `--source-id`: ID of the source to delete.
219 | 
220 | - **Usage Example**:
221 | ```bash
222 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 -token MyToken --source-id 12345
223 | ```
224 | 
225 | ---
226 | 
227 | ### 4.0 MCPListGroupsClient
228 | - **Purpose**:
229 | Lists all the groups available on the MCP server.
230 | 
231 | - **Main Features**:
232 |   - Sends a `list_groups` command to retrieve the available groups.
233 |   - Outputs the groups in JSON format.
234 | 
235 | - **Key Arguments**:
236 |   - `--server-ip`: IP address of the MCP server.
237 |   - `--server-port`: Port number of the MCP server.
238 |   - `--token`: Authentication token for the session.
239 | 
240 | - **Usage Example**:
241 | ```bash
242 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken
243 | ```
244 | 
245 | ### 4.1 MCPStoreGroupClient
246 | - **Purpose**:
247 |   - Creates or updates a group on the MCP server.
248 | 
249 | - **Main Features**:
250 |   - Sends a `store_group` command with the group's name and description.
251 |   - Allows creation of new groups or modification of existing ones.
252 | 
253 | - **Key Arguments**:
254 |   - `--server-ip`: IP address of the MCP server.
255 |   - `--server-port`: Port number of the MCP server.
256 |   - `--token`: Authentication token for the session.
257 |   - `--group-name`: Name of the group to create or update.
258 |   - `--description`: (Optional) Description of the group.
259 | 
260 | - **Usage Example**:
261 | ```bash
262 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name "Team DevOps" --description "Group for development and operations"
263 | ```
264 | 
265 | ### 4.2 MCPDeleteGroupClient
266 | - **Purpose**:
267 |   - Deletes a specified group from the MCP server.
268 | 
269 | - **Main Features**:
270 |   - Sends a `delete_group` command with the group name.
271 |   - Ensures the group is removed from the server.
272 | 
273 | - **Key Arguments**:
274 |   - `--server-ip`: IP address of the MCP server.
275 |   - `--server-port`: Port number of the MCP server.
276 |   - `--token`: Authentication token for the session.
277 |   - `--group-name`: Name of the group to delete.
278 | 
279 | - **Usage Example**:
280 | ```bash
281 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name "Team DevOps"
282 | ```
283 | 
284 | ---
285 | 
286 | ### 5.0 MCPStoreUserClient
287 | - **Purpose:** Creates or updates user details on the MCP server.
288 | 
289 | - **Main Features:**
290 |   - Sends a `store_user` command with comprehensive user details.
291 |   - Allows specification of default values for language and timezone if not provided.
292 | 
293 | - **Key Arguments:**
294 |   - `--server-ip`: IP address of the MCP server.
295 |   - `--server-port`: Port number of the MCP server.
296 |   - `--token`: Authentication token.
297 |   - `--name`: Name of the user.
298 |   - `--email`: Email address of the user.
299 |   - `--password`: Password for the user account.
300 |   - `--language` (Optional): User's preferred language (default: "en").
301 |   - `--timezone` (Optional): User's timezone (default: "Europe/Berlin").
302 |   - `--roles` (Optional): Roles assigned to the user.
303 |   - `--groups` (Optional): Groups the user belongs to.
304 |   - `--usePublic` (Optional): Flag to set the user as public.
305 |   - `--activateFtp` (Optional): Flag to activate FTP access.
306 |   - `--ftpPassword` (Optional): Password for FTP access.
307 | 
308 | **Usage Example:**
309 | ```bash
310 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --name John --email [email protected] --password secret --language en --roles admin manager --groups devops finance --usePublic --activateFtp --ftpPassword ftpPass123
311 | ```
312 | 
313 | ### 5.1 MCPEditUserClient
314 | - **Purpose:** Modifies the details of an existing user on the MCP server.
315 | 
316 | - **Main Features:**
317 |   - Sends an `edit_user` command with the specified user details.
318 |   - Supports conditional sending of fields to avoid unnecessary data transmission.
319 | 
320 | - **Key Arguments:**
321 |   - `--server-ip`: IP address of the MCP server.
322 |   - `--server-port`: Port number of the MCP server.
323 |   - `--token`: Authentication token.
324 |   - `--user-id`: ID of the user to modify.
325 |   - `--name` (Optional): New name of the user.
326 |   - `--email` (Optional): New email for the user.
327 |   - `--password` (Optional): New password for the user.
328 |   - `--language` (Optional): New language for the user.
329 |   - `--timezone` (Optional): New timezone for the user.
330 |   - `--roles` (Optional): New roles for the user.
331 |   - `--groups` (Optional): New groups for the user.
332 |   - `--usePublic` (Optional): Flag to set the user as public.
333 |   - `--activateFtp` (Optional): Flag to activate FTP for the user.
334 |   - `--ftpPassword` (Optional): New password for FTP access.
335 | 
336 | - **Usage Example:**
337 | ```bash
338 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --user-id 12345 --name Jane --roles manager devops --groups hr devops
339 | ```
340 | 
341 | ### 5.2 MCPDeleteUserClient
342 | - **Purpose:** Deletes a user from the MCP server.
343 | 
344 | - **Main Features:**
345 |   - Sends a `delete_user` command using the user's email as an identifier.
346 | 
347 | - **Key Arguments:**
348 |   - `--server-ip`: IP address of the MCP server.
349 |   - `--server-port`: Port number of the MCP server.
350 |   - `--email`: Email address of the user to delete.
351 |   - `--token`: Authentication token.
352 | 
353 | - **Usage Example:**
354 | ```bash
355 | dotnet run -- --server-ip 127.0.0.1 --server-port 1234 --token MyToken --email [email protected]
356 | ```
357 | 
358 | ---
359 | 
360 | ## General Notes
361 | **JSON Communication:**
362 | - Each file constructs and sends JSON payloads specific to its functionality.
363 | - Responses from the server are parsed and displayed in JSON format.
364 | 
365 | **Socket Communication:**
366 | - The files use C# .Net's Socket class for establishing TCP connections with the MCP server.
367 | 
368 | **Error Handling:**
369 | - The scripts handle missing or invalid arguments gracefully, printing clear usage instructions where necessary.
370 | 
371 | **Examples:**
372 | - Replace placeholders (e.g., `<SERVER_IP>`, `<TOKEN>`) with actual values relevant to your environment.
373 | 
374 | ## Prerequisites and Dependencies:
375 | 1. **.NET SDK**: Ensure you have the .NET SDK installed. Download it from [dotnet.microsoft.com](https://dotnet.microsoft.com/).
376 | 2. **Newtonsoft.Json**: The examples use the `Newtonsoft.Json` library for JSON serialization/deserialization. Install it using:
377 |    ```bash
378 |    dotnet add package Newtonsoft.Json
379 |    ```
380 | 
381 | ## Build and Run
382 | Each .NET C# console application is designed to perform a specific operation. Below are the details for compiling and running each application:
383 |    ```bash
384 |    dotnet build
385 |    dotnet run -- <APPLICATION with PARAMETERS>
386 |    ```
387 | 
388 | ## Error Handling
389 | Both clients include error handling for:
390 | - Missing or invalid parameters.
391 | - Server connection issues.
392 | - Unexpected server responses.
393 | 
394 | ## Future Enhancements
395 | - Add support for SSL/TLS encryption for secure communication.
396 | - Implement a configuration file to simplify the command-line parameters.
397 | - Enhance error reporting with detailed server-side error codes.
398 | 
399 | ## License
400 | This project is licensed under the MIT License - see the LICENSE file for details.
401 | This repository and/or code is provided "as is" without warranty of any kind, and use is at your own risk.
402 | 
403 | 
404 | 
```

--------------------------------------------------------------------------------
/clients/C++/README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # MCP Client Examples (C++)
  2 | This repository contains examples for interacting with the MCP server using **C++**. Each console application demonstrates a specific operation and its corresponding server interaction.
  3 | 
  4 | ## Main Menu
  5 | Choose an operation from the list below. Each example demonstrates a specific server interaction.
  6 | 
  7 | ### 1. Authentication
  8 | [1.1 Login User](#10-mcploginclient)
  9 | [1.2 Logout User](#12-mcplogoutclient)
 10 | 
 11 | ### 2. Chat Operations
 12 | [2.1 Start a New Chat](#20-mcpchatclient)
 13 | [2.2 Continue a Chat Session](#21-mcpcontinuechatclient)
 14 | [2.3 Retrieve Chat Info](#22-mcpgetchatinfoClient)
 15 | 
 16 | ### 3. Source Management
 17 | [3.1 Create a New Source](#30-mcpcreatesourceclient)
 18 | [3.2 Retrieve Source Details](#31-mcpgetsourceclient)
 19 | [3.3 List All Sources in a Group](#32-mcplistsourcesclient)
 20 | [3.4 Edit an Existing Source](#33-mcpeditsourceclient)
 21 | [3.5 Delete a Source](#34-mcpdeletesourceclient)
 22 | 
 23 | ### 4. Group Management
 24 | [4.1 List All Groups](#40-mcplistgroupsclient)
 25 | [4.2 Create/Update a Group](#41-mcpstoregroupclient)
 26 | [4.3 Delete a Group](#42-mcpdeletegroupclient)
 27 | 
 28 | ### 5. User Management
 29 | [5.1 Create/Update a User](#50-mcpstoreuserclient)
 30 | [5.2 Edit User Details](#51-mcpedituserclient)
 31 | [5.3 Delete a User](#52-mcpdeleteuserclient)
 32 | 
 33 | ---
 34 | 
 35 | 
 36 | ### 1.0 MCPLoginClient
 37 | - **Purpose**: Handles user authentication by sending login requests to the MCP server.
 38 | 
 39 | - **Main Features**:
 40 |   - Sends a `login` command to the server with user credentials.
 41 |   - Handles JSON-based requests and parses the server's response.
 42 |   
 43 | - **Key Arguments**:
 44 |   - `--server-ip`: IP address of the MCP server.
 45 |   - `--server-port`: Port number of the MCP server.
 46 |   - `--email`: User email for authentication.
 47 |   - `--password`: User password for authentication.
 48 |   
 49 | - **Usage Example**:
 50 |   ```bash
 51 |   MCPLoginClient.exe --server-ip 127.0.0.1 --server-port 1234 --email [email protected] --password secret
 52 |   ```
 53 | 
 54 | ### 1.2 MCPLogoutClient
 55 | - **Purpose**: Logs out an authenticated user by invalidating their session token.
 56 | 
 57 | - **Main Features**:
 58 |   - Sends a `logout` command to the server.
 59 |   - Invalidates the token provided in the request.
 60 |   
 61 | - **Key Arguments**:
 62 |   - `--server-ip`: IP address of the MCP server.
 63 |   - `--server-port`: Port number of the MCP server.
 64 |   - `--token`: Authentication token to be invalidated.
 65 |   
 66 | - **Usage Example**:
 67 |   ```bash
 68 |   MCPLogoutClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken
 69 |   ```
 70 | 
 71 | ---
 72 | 
 73 | ### 2.0 MCPChatClient
 74 | - **Purpose**: Initiates a new chat session with the MCP server.
 75 | 
 76 | - **Main Features**:
 77 |   - Sends a `chat` command to the server with a question.
 78 |   - Supports optional parameters for public chats, groups, and language.
 79 |   
 80 | - **Key Arguments**:
 81 |   - `--server-ip`: IP address of the MCP server.
 82 |   - `--server-port`: Port number of the MCP server.
 83 |   - `--token`: Authentication token.
 84 |   - `--question`: Initial question for the chat session.
 85 |   - `--use-public`: Optional flag for public chat.
 86 |   - `--groups`: Optional group list.
 87 |   - `--language`: Optional language parameter.
 88 |   
 89 | - **Usage Example**:
 90 |   ```bash
 91 |   MCPChatClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --question "Hello World" --use-public --groups "devops,hr" --language en
 92 |   ```
 93 | 
 94 | ### 2.1 MCPContinueChatClient
 95 | - **Purpose**: Continues an existing chat session by sending follow-up messages.
 96 | 
 97 | - **Main Features**:
 98 |   - Sends a `continue_chat` command to the server.
 99 |   - Provides the conversation ID and follow-up message.
100 |   
101 | - **Key Arguments**:
102 |   - `--server-ip`: IP address of the MCP server.
103 |   - `--server-port`: Port number of the MCP server.
104 |   - `--token`: Authentication token.
105 |   - `--conversation-id`: ID of the conversation to continue.
106 |   - `--message`: Follow-up message.
107 |   
108 | - **Usage Example**:
109 |   ```bash
110 |   MCPContinueChatClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --conversation-id 12345 --message "Can you provide an update?"
111 |   ```
112 | 
113 | ### 2.2 MCPGetChatInfoClient
114 | - **Purpose**: Retrieves metadata and status information about an existing chat session.
115 | 
116 | - **Main Features**:
117 |   - Sends a `get_chat_info` command to the server.
118 |   - Extracts and displays information about the chat session.
119 |   
120 | - **Key Arguments**:
121 |   - `--server-ip`: IP address of the MCP server.
122 |   - `--server-port`: Port number of the MCP server.
123 |   - `--token`: Authentication token.
124 |   - `--chat-id`: ID of the chat session to retrieve information for.
125 |   
126 | - **Usage Example**:
127 |   ```bash
128 |   MCPGetChatInfoClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --chat-id 6789
129 |   ```
130 | 
131 | ---
132 | 
133 | ### 3.0 MCPCreateSourceClient
134 | - **Purpose**: Creates a new source on the MCP server and associates it with specified groups.
135 | 
136 | - **Main Features**:
137 |   - Sends a `create_source` command with details such as name, content, and associated groups.
138 |   - Provides robust error handling for missing arguments and server communication issues.
139 | 
140 | - **Key Arguments**:
141 |   - `--server-ip`: IP address of the MCP server.
142 |   - `--server-port`: Port number of the MCP server.
143 |   - `--token`: Authentication token for the session.
144 |   - `--name`: Name of the source to create.
145 |   - `--content`: Content of the source in plain text or markdown.
146 |   - `--groups`: (Optional) List of groups to associate with the source.
147 | 
148 | - **Usage Example**:
149 | ```bash
150 | MCPCreateSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --name "Sample Source" --content "This is a test content" --groups devops hr
151 | ```
152 | 
153 | ---
154 | 
155 | ### 3.1 MCPGetSourceClient
156 | - **Purpose**: Fetches detailed information about a specific source from the MCP server.
157 | 
158 | - **Main Features**:
159 |   - Sends a `get_source` command to the server with the source ID as a parameter.
160 |   - Retrieves and displays the source's metadata and contents.
161 | 
162 | - **Key Arguments**:
163 |   - `--server-ip`: IP address of the MCP server.
164 |   - `--server-port`: Port number of the MCP server.
165 |   - `--token`: Authentication token for the server.
166 |   - `--source-id`: Unique ID of the source to retrieve.
167 | 
168 | - **Usage Example**:
169 | ```bash
170 | MCPGetSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --source-id 12345
171 | ```
172 | 
173 | ### 3.2 MCPListSourcesClient
174 | - **Purpose**: Lists all sources belonging to a specified group on the MCP server.
175 | 
176 | - **Main Features**:
177 |   - Sends a `list_sources` command with the group name as a parameter.
178 |   - Displays a list of sources available in the specified group.
179 | 
180 | - **Key Arguments**:
181 |   - `--server-ip`: IP address of the MCP server.
182 |   - `--server-port`: Port number of the MCP server.
183 |   - `--token`: Authentication token for the server.
184 |   - `--group-name`: Name of the group for which to list sources.
185 | 
186 | - **Usage Example**:
187 | ```bash
188 | MCPListSourcesClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name devops
189 | ```
190 | 
191 | ### 3.3 MCPEditSourceClient
192 | - **Purpose**: Edits the details of an existing source on the MCP server.
193 | 
194 | - **Main Features**:
195 |   - Sends an `edit_source` command with optional updates for the source title, content, and group associations.
196 |   - Supports adding or updating multiple groups for the source.
197 | 
198 | - **Key Arguments**:
199 |   - `--server-ip`: IP address of the MCP server.
200 |   - `--server-port`: Port number of the MCP server.
201 |   - `--token`: Authentication token for the server. 
202 |   - `--source-id`: ID of the source to edit.
203 |   - `--title`: (Optional) New title for the source.
204 |   - `--content`: (Optional) New content for the source.
205 |   - `--groups`: (Optional) List of groups to associate with the source.
206 | 
207 | - **Usage Example**:
208 | ```bash
209 | MCPEditSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --source-id 12345 --title "Updated Title" --content "Updated content for the source." --groups devops finance
210 | ```
211 | 
212 | ### 3.4 MCPDeleteSourceClient
213 | - **Purpose**: Deletes a specific source from the MCP server.
214 | 
215 | - **Main Features**:
216 |   - Sends a `delete_source` command to remove the source identified by its ID.
217 | 
218 | - **Key Arguments**:
219 |   - `--server-ip`: IP address of the MCP server.
220 |   - `--server-port`: Port number of the MCP server.
221 |   - `--token`: Authentication token for the server.
222 |   - `--source-id`: ID of the source to delete.
223 | 
224 | - **Usage Example**:
225 | ```bash
226 | MCPDeleteSourceClient.exe --server-ip 127.0.0.1 --server-port 1234 -token MyToken --source-id 12345
227 | ```
228 | 
229 | ---
230 | 
231 | ### 4.0 MCPListGroupsClient
232 | - **Purpose**:
233 | Lists all the groups available on the MCP server.
234 | 
235 | - **Main Features**:
236 |   - Sends a `list_groups` command to retrieve the available groups.
237 |   - Outputs the groups in JSON format.
238 | 
239 | - **Key Arguments**:
240 |   - `--server-ip`: IP address of the MCP server.
241 |   - `--server-port`: Port number of the MCP server.
242 |   - `--token`: Authentication token for the session.
243 | 
244 | - **Usage Example**:
245 | ```bash
246 | MCPListGroupsClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken
247 | ```
248 | 
249 | ### 4.1 MCPStoreGroupClient
250 | - **Purpose**:
251 |   - Creates or updates a group on the MCP server.
252 | 
253 | - **Main Features**:
254 |   - Sends a `store_group` command with the group's name and description.
255 |   - Allows creation of new groups or modification of existing ones.
256 | 
257 | - **Key Arguments**:
258 |   - `--server-ip`: IP address of the MCP server.
259 |   - `--server-port`: Port number of the MCP server.
260 |   - `--token`: Authentication token for the session.
261 |   - `--group-name`: Name of the group to create or update.
262 |   - `--description`: (Optional) Description of the group.
263 | 
264 | - **Usage Example**:
265 | ```bash
266 | MCPStoreGroupClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name "Team DevOps" --description "Group for development and operations"
267 | ```
268 | 
269 | ### 4.2 MCPDeleteGroupClient
270 | - **Purpose**:
271 |   - Deletes a specified group from the MCP server.
272 | 
273 | - **Main Features**:
274 |   - Sends a `delete_group` command with the group name.
275 |   - Ensures the group is removed from the server.
276 | 
277 | - **Key Arguments**:
278 |   - `--server-ip`: IP address of the MCP server.
279 |   - `--server-port`: Port number of the MCP server.
280 |   - `--token`: Authentication token for the session.
281 |   - `--group-name`: Name of the group to delete.
282 | 
283 | - **Usage Example**:
284 | ```bash
285 | MCPDeleteGroupClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --group-name "Team DevOps"
286 | ```
287 | 
288 | ---
289 | 
290 | ### 5.0 MCPStoreUserClient
291 | - **Purpose:** Creates or updates user details on the MCP server.
292 | 
293 | - **Main Features:**
294 |   - Sends a `store_user` command with comprehensive user details.
295 |   - Allows specification of default values for language and timezone if not provided.
296 | 
297 | - **Key Arguments:**
298 |   - `--server-ip`: IP address of the MCP server.
299 |   - `--server-port`: Port number of the MCP server.
300 |   - `--token`: Authentication token.
301 |   - `--name`: Name of the user.
302 |   - `--email`: Email address of the user.
303 |   - `--password`: Password for the user account.
304 |   - `--language` (Optional): User's preferred language (default: "en").
305 |   - `--timezone` (Optional): User's timezone (default: "Europe/Berlin").
306 |   - `--roles` (Optional): Roles assigned to the user.
307 |   - `--groups` (Optional): Groups the user belongs to.
308 |   - `--usePublic` (Optional): Flag to set the user as public.
309 |   - `--activateFtp` (Optional): Flag to activate FTP access.
310 |   - `--ftpPassword` (Optional): Password for FTP access.
311 | 
312 | **Usage Example:**
313 | ```bash
314 | MCPStoreUserClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --name John --email [email protected] --password secret --language en --roles admin manager --groups devops finance --usePublic --activateFtp --ftpPassword ftpPass123
315 | ```
316 | 
317 | ### 5.1 MCPEditUserClient
318 | - **Purpose:** Modifies the details of an existing user on the MCP server.
319 | 
320 | - **Main Features:**
321 |   - Sends an `edit_user` command with the specified user details.
322 |   - Supports conditional sending of fields to avoid unnecessary data transmission.
323 | 
324 | - **Key Arguments:**
325 |   - `--server-ip`: IP address of the MCP server.
326 |   - `--server-port`: Port number of the MCP server.
327 |   - `--token`: Authentication token.
328 |   - `--user-id`: ID of the user to modify.
329 |   - `--name` (Optional): New name of the user.
330 |   - `--email` (Optional): New email for the user.
331 |   - `--password` (Optional): New password for the user.
332 |   - `--language` (Optional): New language for the user.
333 |   - `--timezone` (Optional): New timezone for the user.
334 |   - `--roles` (Optional): New roles for the user.
335 |   - `--groups` (Optional): New groups for the user.
336 |   - `--usePublic` (Optional): Flag to set the user as public.
337 |   - `--activateFtp` (Optional): Flag to activate FTP for the user.
338 |   - `--ftpPassword` (Optional): New password for FTP access.
339 | 
340 | - **Usage Example:**
341 | ```bash
342 | MCPEditUserClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --user-id 12345 --name Jane --roles manager devops --groups hr devops
343 | ```
344 | 
345 | ### 5.2 MCPDeleteUserClient
346 | - **Purpose:** Deletes a user from the MCP server.
347 | 
348 | - **Main Features:**
349 |   - Sends a `delete_user` command using the user's email as an identifier.
350 | 
351 | - **Key Arguments:**
352 |   - `--server-ip`: IP address of the MCP server.
353 |   - `--server-port`: Port number of the MCP server.
354 |   - `--email`: Email address of the user to delete.
355 |   - `--token`: Authentication token.
356 | 
357 | - **Usage Example:**
358 | ```bash
359 | MCPDeleteUserClient.exe --server-ip 127.0.0.1 --server-port 1234 --token MyToken --email [email protected]
360 | ```
361 | 
362 | ---
363 | 
364 | ## General Notes
365 | **JSON Communication:**
366 | - Each file constructs and sends JSON payloads specific to its functionality.
367 | - Responses from the server are parsed and displayed in JSON format.
368 | 
369 | **Socket Communication:**
370 | - The files use C++'s Socket class for establishing TCP connections with the MCP server.
371 | 
372 | **Error Handling:**
373 | - The scripts handle missing or invalid arguments gracefully, printing clear usage instructions where necessary.
374 | 
375 | **Examples:**
376 | - Replace placeholders (e.g., `<SERVER_IP>`, `<TOKEN>`) with actual values relevant to your environment.
377 | 
378 | ## Prerequisites and Dependencies:
379 | 1. **C-Compiler**: Those agents have been build using g++.
380 | 2. **JsonCpp **: The examples use the `JsonCpp ` library for JSON serialization/deserialization.
381 | 
382 | ## Build 
383 | Each C++ console application is designed to perform a specific operation. Below are the details for compiling an example application, in this case MCPKeygenClient:
384 |    ```bash
385 |    g++ -std=c++17 -o .\MCPKeygenClient .\MCPKeygenClient.cpp -I"C:\msys64\mingw64\include" -L"C:\msys64\mingw64\lib" -ljsoncpp -lws2_32
386 |    ```
387 | 
388 | ## Error Handling
389 | Both clients include error handling for:
390 | - Missing or invalid parameters.
391 | - Server connection issues.
392 | - Unexpected server responses.
393 | 
394 | ## Future Enhancements
395 | - Add support for SSL/TLS encryption for secure communication.
396 | - Implement a configuration file to simplify the command-line parameters.
397 | - Enhance error reporting with detailed server-side error codes.
398 | 
399 | ## License
400 | This project is licensed under the MIT License - see the LICENSE file for details.
401 | This repository and/or code is provided "as is" without warranty of any kind, and use is at your own risk.
402 | 
403 | 
404 | 
```
Page 1/20FirstPrevNextLast