microsoft-agents-a365-tooling-extensions-azureaifoundry 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/PKG-INFO +67 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/README.md +33 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365/tooling/extensions/azureaifoundry/__init__.py +21 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365/tooling/extensions/azureaifoundry/services/__init__.py +16 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365/tooling/extensions/azureaifoundry/services/mcp_tool_registration_service.py +207 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/PKG-INFO +67 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/SOURCES.txt +11 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/dependency_links.txt +1 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/requires.txt +15 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/top_level.txt +1 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/pyproject.toml +73 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/setup.cfg +4 -0
- microsoft_agents_a365_tooling_extensions_azureaifoundry-0.1.0/setup.py +28 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Azure AI Foundry integration for Agent 365 Tooling SDK
|
|
5
|
+
Author-email: Microsoft <support@microsoft.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/microsoft/Agent365-python
|
|
8
|
+
Project-URL: Repository, https://github.com/microsoft/Agent365-python
|
|
9
|
+
Project-URL: Issues, https://github.com/microsoft/Agent365-python/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: microsoft-agents-a365-tooling>=0.0.0
|
|
22
|
+
Requires-Dist: azure-ai-projects>=2.0.0b1
|
|
23
|
+
Requires-Dist: azure-ai-agents>=1.0.0b251001
|
|
24
|
+
Requires-Dist: azure-identity>=1.12.0
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
28
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
29
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
31
|
+
Provides-Extra: test
|
|
32
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
33
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
|
34
|
+
|
|
35
|
+
# microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
36
|
+
|
|
37
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
|
|
38
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
|
|
39
|
+
|
|
40
|
+
Azure AI Foundry specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Azure AI Foundry agents.
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
|
|
51
|
+
|
|
52
|
+
## Support
|
|
53
|
+
|
|
54
|
+
For issues, questions, or feedback:
|
|
55
|
+
|
|
56
|
+
- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
|
|
57
|
+
- See the [main documentation](../../../README.md) for more information
|
|
58
|
+
|
|
59
|
+
## Trademarks
|
|
60
|
+
|
|
61
|
+
*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
66
|
+
|
|
67
|
+
Licensed under the MIT License - see the [LICENSE](../../../LICENSE.md) file for details.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
|
|
4
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
|
|
5
|
+
|
|
6
|
+
Azure AI Foundry specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Azure AI Foundry agents.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
|
|
17
|
+
|
|
18
|
+
## Support
|
|
19
|
+
|
|
20
|
+
For issues, questions, or feedback:
|
|
21
|
+
|
|
22
|
+
- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
|
|
23
|
+
- See the [main documentation](../../../README.md) for more information
|
|
24
|
+
|
|
25
|
+
## Trademarks
|
|
26
|
+
|
|
27
|
+
*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
|
|
28
|
+
|
|
29
|
+
## License
|
|
30
|
+
|
|
31
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
32
|
+
|
|
33
|
+
Licensed under the MIT License - see the [LICENSE](../../../LICENSE.md) file for details.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
Azure AI Foundry extension for Microsoft Agent 365 Tooling SDK
|
|
6
|
+
|
|
7
|
+
Azure AI Foundry specific tools and services for AI agent development.
|
|
8
|
+
Provides Azure AI Foundry-specific implementations and utilities for
|
|
9
|
+
building agents with Azure AI Foundry capabilities.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
__version__ = "1.0.0"
|
|
13
|
+
|
|
14
|
+
# Import services
|
|
15
|
+
from .services import (
|
|
16
|
+
McpToolRegistrationService,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
__all__ = [
|
|
20
|
+
"McpToolRegistrationService",
|
|
21
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Copyright (c) Microsoft. All rights reserved.
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Azure Foundry Services Module.
|
|
5
|
+
|
|
6
|
+
This module contains service implementations for Azure Foundry integration,
|
|
7
|
+
including MCP (Model Context Protocol) tool registration and management.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from .mcp_tool_registration_service import (
|
|
11
|
+
McpToolRegistrationService,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"McpToolRegistrationService",
|
|
16
|
+
]
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Copyright (c) Microsoft. All rights reserved.
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
MCP Tool Registration Service implementation for Azure Foundry.
|
|
5
|
+
|
|
6
|
+
This module provides the concrete implementation of the MCP (Model Context Protocol)
|
|
7
|
+
tool registration service that integrates with Azure Foundry to add MCP tool
|
|
8
|
+
servers to agents.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
# Standard library imports
|
|
12
|
+
import logging
|
|
13
|
+
from typing import Optional, List, Tuple
|
|
14
|
+
|
|
15
|
+
# Third-party imports - Azure AI
|
|
16
|
+
from azure.ai.projects import AIProjectClient
|
|
17
|
+
from azure.identity import DefaultAzureCredential
|
|
18
|
+
from azure.ai.agents.models import McpTool, ToolResources
|
|
19
|
+
from microsoft_agents.hosting.core import Authorization, TurnContext
|
|
20
|
+
from microsoft_agents_a365.runtime.utility import Utility
|
|
21
|
+
from microsoft_agents_a365.tooling.services.mcp_tool_server_configuration_service import (
|
|
22
|
+
McpToolServerConfigurationService,
|
|
23
|
+
)
|
|
24
|
+
from microsoft_agents_a365.tooling.utils.constants import Constants
|
|
25
|
+
from microsoft_agents_a365.tooling.utils.utility import get_mcp_platform_authentication_scope
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class McpToolRegistrationService:
|
|
29
|
+
"""
|
|
30
|
+
Provides MCP tool registration services for Azure Foundry agents.
|
|
31
|
+
|
|
32
|
+
This service handles registration and management of MCP (Model Context Protocol)
|
|
33
|
+
tool servers with Azure Foundry agents using the Azure AI SDK. It provides
|
|
34
|
+
seamless integration between MCP servers and Azure Foundry's agent framework.
|
|
35
|
+
|
|
36
|
+
Features:
|
|
37
|
+
- Automatic MCP server discovery and configuration
|
|
38
|
+
- Azure identity integration with DefaultAzureCredential
|
|
39
|
+
- Tool definitions and resources management
|
|
40
|
+
- Support for both development (ToolingManifest.json) and production (gateway API) scenarios
|
|
41
|
+
- Comprehensive error handling and logging
|
|
42
|
+
|
|
43
|
+
Example:
|
|
44
|
+
>>> service = McpToolRegistrationService()
|
|
45
|
+
>>> service.add_tool_servers_to_agent(project_client, agent_id, token)
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
50
|
+
logger: Optional[logging.Logger] = None,
|
|
51
|
+
credential: Optional["DefaultAzureCredential"] = None,
|
|
52
|
+
):
|
|
53
|
+
"""
|
|
54
|
+
Initialize the MCP Tool Registration Service for Azure Foundry.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
logger: Logger instance for logging operations.
|
|
58
|
+
credential: Azure credential for authentication. If None, DefaultAzureCredential will be used.
|
|
59
|
+
"""
|
|
60
|
+
self._logger = logger or logging.getLogger(self.__class__.__name__)
|
|
61
|
+
self._credential = credential or DefaultAzureCredential()
|
|
62
|
+
self._mcp_server_configuration_service = McpToolServerConfigurationService(
|
|
63
|
+
logger=self._logger
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# ============================================================================
|
|
67
|
+
# Public Methods - Main Entry Points
|
|
68
|
+
# ============================================================================
|
|
69
|
+
|
|
70
|
+
async def add_tool_servers_to_agent(
|
|
71
|
+
self,
|
|
72
|
+
project_client: "AIProjectClient",
|
|
73
|
+
auth: Authorization,
|
|
74
|
+
auth_handler_name: str,
|
|
75
|
+
context: TurnContext,
|
|
76
|
+
auth_token: Optional[str] = None,
|
|
77
|
+
) -> None:
|
|
78
|
+
"""
|
|
79
|
+
Adds MCP tool servers to an Azure Foundry agent.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
project_client: The Azure Foundry AIProjectClient instance.
|
|
83
|
+
auth: Authorization handler for token exchange.
|
|
84
|
+
auth_handler_name: Name of the authorization handler.
|
|
85
|
+
context: Turn context for the current operation.
|
|
86
|
+
auth_token: Authentication token to access the MCP servers.
|
|
87
|
+
|
|
88
|
+
Raises:
|
|
89
|
+
ValueError: If project_client is None or required parameters are invalid.
|
|
90
|
+
Exception: If there's an error during MCP tool registration.
|
|
91
|
+
"""
|
|
92
|
+
if project_client is None:
|
|
93
|
+
raise ValueError("project_client cannot be None")
|
|
94
|
+
|
|
95
|
+
if not auth_token:
|
|
96
|
+
scopes = get_mcp_platform_authentication_scope()
|
|
97
|
+
authToken = await auth.exchange_token(context, scopes, auth_handler_name)
|
|
98
|
+
auth_token = authToken.token
|
|
99
|
+
|
|
100
|
+
try:
|
|
101
|
+
agentic_app_id = Utility.resolve_agent_identity(context, auth_token)
|
|
102
|
+
# Get the tool definitions and resources using the async implementation
|
|
103
|
+
tool_definitions, tool_resources = await self._get_mcp_tool_definitions_and_resources(
|
|
104
|
+
agentic_app_id, auth_token or ""
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# Update the agent with the tools
|
|
108
|
+
project_client.agents.update_agent(
|
|
109
|
+
agentic_app_id, tools=tool_definitions, tool_resources=tool_resources
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
self._logger.info(
|
|
113
|
+
f"Successfully configured {len(tool_definitions)} MCP tool servers for agent"
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
except Exception as ex:
|
|
117
|
+
self._logger.error(
|
|
118
|
+
f"Unhandled failure during MCP tool registration workflow for agent user {agentic_app_id}: {ex}"
|
|
119
|
+
)
|
|
120
|
+
raise
|
|
121
|
+
|
|
122
|
+
async def _get_mcp_tool_definitions_and_resources(
|
|
123
|
+
self, agentic_app_id: str, auth_token: str
|
|
124
|
+
) -> Tuple[List[McpTool], Optional[ToolResources]]:
|
|
125
|
+
"""
|
|
126
|
+
Internal method to get MCP tool definitions and resources.
|
|
127
|
+
|
|
128
|
+
This implements the core logic equivalent to the C# method of the same name.
|
|
129
|
+
|
|
130
|
+
Args:
|
|
131
|
+
agentic_app_id: Agentic App ID for the agent.
|
|
132
|
+
auth_token: Authentication token to access the MCP servers.
|
|
133
|
+
|
|
134
|
+
Returns:
|
|
135
|
+
Tuple containing tool definitions and resources.
|
|
136
|
+
"""
|
|
137
|
+
if self._mcp_server_configuration_service is None:
|
|
138
|
+
self._logger.error("MCP server configuration service is not available")
|
|
139
|
+
return ([], None)
|
|
140
|
+
|
|
141
|
+
# Get MCP server configurations
|
|
142
|
+
try:
|
|
143
|
+
servers = await self._mcp_server_configuration_service.list_tool_servers(
|
|
144
|
+
agentic_app_id, auth_token
|
|
145
|
+
)
|
|
146
|
+
except Exception as ex:
|
|
147
|
+
self._logger.error(
|
|
148
|
+
f"Failed to list MCP tool servers for AgenticAppId={agentic_app_id}: {ex}"
|
|
149
|
+
)
|
|
150
|
+
return ([], None)
|
|
151
|
+
|
|
152
|
+
if len(servers) == 0:
|
|
153
|
+
self._logger.info(f"No MCP servers configured for AgenticAppId={agentic_app_id}")
|
|
154
|
+
return ([], None)
|
|
155
|
+
|
|
156
|
+
# Collections to build for the return value
|
|
157
|
+
tool_definitions: List[McpTool] = []
|
|
158
|
+
combined_tool_resources = ToolResources()
|
|
159
|
+
|
|
160
|
+
for server in servers:
|
|
161
|
+
# Validate server configuration
|
|
162
|
+
if not server.mcp_server_name or not server.mcp_server_unique_name:
|
|
163
|
+
self._logger.warning(
|
|
164
|
+
f"Skipping invalid MCP server config: Name='{server.mcp_server_name}', Url='{server.mcp_server_unique_name}'"
|
|
165
|
+
)
|
|
166
|
+
continue
|
|
167
|
+
|
|
168
|
+
# TODO: The Foundry SDK currently allows MCP label names without the "mcp_" prefix,
|
|
169
|
+
# which is unintended and has been identified as a bug.
|
|
170
|
+
# This change should be reverted once the official fix is availab
|
|
171
|
+
server_label = (
|
|
172
|
+
server.mcp_server_name[4:]
|
|
173
|
+
if server.mcp_server_name.lower().startswith("mcp_")
|
|
174
|
+
else server.mcp_server_name
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
# Create MCP tool using Azure Foundry SDK
|
|
178
|
+
mcp_tool = McpTool(server_label=server_label, server_url=server.mcp_server_unique_name)
|
|
179
|
+
|
|
180
|
+
# Configure the tool
|
|
181
|
+
mcp_tool.set_approval_mode("never")
|
|
182
|
+
|
|
183
|
+
# Set up authorization header
|
|
184
|
+
if auth_token:
|
|
185
|
+
header_value = (
|
|
186
|
+
auth_token
|
|
187
|
+
if auth_token.lower().startswith(f"{Constants.Headers.BEARER_PREFIX.lower()} ")
|
|
188
|
+
else f"{Constants.Headers.BEARER_PREFIX} {auth_token}"
|
|
189
|
+
)
|
|
190
|
+
mcp_tool.update_headers(Constants.Headers.AUTHORIZATION, header_value)
|
|
191
|
+
|
|
192
|
+
# Add to collections
|
|
193
|
+
tool_definitions.extend(mcp_tool.definitions)
|
|
194
|
+
if mcp_tool.resources and mcp_tool.resources.mcp:
|
|
195
|
+
if combined_tool_resources.mcp is None:
|
|
196
|
+
combined_tool_resources.mcp = []
|
|
197
|
+
combined_tool_resources.mcp.extend(mcp_tool.resources.mcp)
|
|
198
|
+
|
|
199
|
+
# Return None if no servers were processed successfully
|
|
200
|
+
if combined_tool_resources.mcp is None or len(combined_tool_resources.mcp) == 0:
|
|
201
|
+
combined_tool_resources = None
|
|
202
|
+
|
|
203
|
+
self._logger.info(
|
|
204
|
+
f"Processed {len(servers)} MCP servers, created {len(tool_definitions)} tool definitions"
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
return (tool_definitions, combined_tool_resources)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Azure AI Foundry integration for Agent 365 Tooling SDK
|
|
5
|
+
Author-email: Microsoft <support@microsoft.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/microsoft/Agent365-python
|
|
8
|
+
Project-URL: Repository, https://github.com/microsoft/Agent365-python
|
|
9
|
+
Project-URL: Issues, https://github.com/microsoft/Agent365-python/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
Requires-Dist: microsoft-agents-a365-tooling>=0.0.0
|
|
22
|
+
Requires-Dist: azure-ai-projects>=2.0.0b1
|
|
23
|
+
Requires-Dist: azure-ai-agents>=1.0.0b251001
|
|
24
|
+
Requires-Dist: azure-identity>=1.12.0
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
28
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
29
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
31
|
+
Provides-Extra: test
|
|
32
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
33
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
|
34
|
+
|
|
35
|
+
# microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
36
|
+
|
|
37
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
|
|
38
|
+
[](https://pypi.org/project/microsoft-agents-a365-tooling-extensions-azureaifoundry)
|
|
39
|
+
|
|
40
|
+
Azure AI Foundry specific tools and services for AI agent development. Provides MCP (Model Context Protocol) tool registration service for dynamically adding MCP servers to Azure AI Foundry agents.
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install microsoft-agents-a365-tooling-extensions-azureaifoundry
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
For usage examples and detailed documentation, see the [Tooling documentation](https://learn.microsoft.com/microsoft-agent-365/developer/tooling?tabs=python) on Microsoft Learn.
|
|
51
|
+
|
|
52
|
+
## Support
|
|
53
|
+
|
|
54
|
+
For issues, questions, or feedback:
|
|
55
|
+
|
|
56
|
+
- File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-python/issues) section
|
|
57
|
+
- See the [main documentation](../../../README.md) for more information
|
|
58
|
+
|
|
59
|
+
## Trademarks
|
|
60
|
+
|
|
61
|
+
*Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
66
|
+
|
|
67
|
+
Licensed under the MIT License - see the [LICENSE](../../../LICENSE.md) file for details.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
setup.py
|
|
4
|
+
microsoft_agents_a365/tooling/extensions/azureaifoundry/__init__.py
|
|
5
|
+
microsoft_agents_a365/tooling/extensions/azureaifoundry/services/__init__.py
|
|
6
|
+
microsoft_agents_a365/tooling/extensions/azureaifoundry/services/mcp_tool_registration_service.py
|
|
7
|
+
microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/PKG-INFO
|
|
8
|
+
microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/SOURCES.txt
|
|
9
|
+
microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/dependency_links.txt
|
|
10
|
+
microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/requires.txt
|
|
11
|
+
microsoft_agents_a365_tooling_extensions_azureaifoundry.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
microsoft-agents-a365-tooling>=0.0.0
|
|
2
|
+
azure-ai-projects>=2.0.0b1
|
|
3
|
+
azure-ai-agents>=1.0.0b251001
|
|
4
|
+
azure-identity>=1.12.0
|
|
5
|
+
|
|
6
|
+
[dev]
|
|
7
|
+
pytest>=7.0.0
|
|
8
|
+
pytest-asyncio>=0.21.0
|
|
9
|
+
ruff>=0.1.0
|
|
10
|
+
black>=23.0.0
|
|
11
|
+
mypy>=1.0.0
|
|
12
|
+
|
|
13
|
+
[test]
|
|
14
|
+
pytest>=7.0.0
|
|
15
|
+
pytest-asyncio>=0.21.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
microsoft_agents_a365
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel", "tzdata"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "microsoft-agents-a365-tooling-extensions-azureaifoundry"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "Microsoft", email = "support@microsoft.com" },
|
|
10
|
+
]
|
|
11
|
+
description = "Azure AI Foundry integration for Agent 365 Tooling SDK"
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
requires-python = ">=3.11"
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
22
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
23
|
+
]
|
|
24
|
+
license = {text = "MIT"}
|
|
25
|
+
dependencies = [
|
|
26
|
+
"microsoft-agents-a365-tooling >= 0.0.0",
|
|
27
|
+
"azure-ai-projects >= 2.0.0b1",
|
|
28
|
+
"azure-ai-agents >= 1.0.0b251001",
|
|
29
|
+
"azure-identity >= 1.12.0",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.urls]
|
|
33
|
+
Homepage = "https://github.com/microsoft/Agent365-python"
|
|
34
|
+
Repository = "https://github.com/microsoft/Agent365-python"
|
|
35
|
+
Issues = "https://github.com/microsoft/Agent365-python/issues"
|
|
36
|
+
Documentation = "https://github.com/microsoft/Agent365-python/tree/main/libraries/microsoft-agents-a365-tooling-extensions-azureaifoundry"
|
|
37
|
+
|
|
38
|
+
[project.optional-dependencies]
|
|
39
|
+
dev = [
|
|
40
|
+
"pytest >= 7.0.0",
|
|
41
|
+
"pytest-asyncio >= 0.21.0",
|
|
42
|
+
"ruff >= 0.1.0",
|
|
43
|
+
"black >= 23.0.0",
|
|
44
|
+
"mypy >= 1.0.0",
|
|
45
|
+
]
|
|
46
|
+
test = [
|
|
47
|
+
"pytest >= 7.0.0",
|
|
48
|
+
"pytest-asyncio >= 0.21.0",
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
[tool.setuptools.packages.find]
|
|
52
|
+
where = ["."]
|
|
53
|
+
|
|
54
|
+
[tool.setuptools]
|
|
55
|
+
license-files = ["../../LICENSE"]
|
|
56
|
+
include-package-data = true
|
|
57
|
+
|
|
58
|
+
[tool.setuptools.package-data]
|
|
59
|
+
"*" = ["../../LICENSE"]
|
|
60
|
+
|
|
61
|
+
[tool.black]
|
|
62
|
+
line-length = 100
|
|
63
|
+
target-version = ['py311']
|
|
64
|
+
|
|
65
|
+
[tool.ruff]
|
|
66
|
+
line-length = 100
|
|
67
|
+
target-version = "py311"
|
|
68
|
+
|
|
69
|
+
[tool.mypy]
|
|
70
|
+
python_version = "3.11"
|
|
71
|
+
strict = true
|
|
72
|
+
warn_return_any = true
|
|
73
|
+
warn_unused_configs = true
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
import sys
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from os import environ
|
|
7
|
+
from setuptools import setup
|
|
8
|
+
|
|
9
|
+
# Get version from environment variable set by CI/CD
|
|
10
|
+
package_version = environ.get("AGENT365_PYTHON_SDK_PACKAGE_VERSION", "0.0.0")
|
|
11
|
+
|
|
12
|
+
# Add versioning helper to path
|
|
13
|
+
helper_path = Path(__file__).parent.parent.parent / "versioning" / "helper"
|
|
14
|
+
sys.path.insert(0, str(helper_path))
|
|
15
|
+
|
|
16
|
+
from setup_utils import get_dynamic_dependencies
|
|
17
|
+
|
|
18
|
+
# Use minimum version strategy:
|
|
19
|
+
# - Internal packages get: >= current_base_version (e.g., >= 0.1.0)
|
|
20
|
+
# - Automatically updates when you build new versions
|
|
21
|
+
# - Consumers can upgrade to any higher version
|
|
22
|
+
setup(
|
|
23
|
+
version=package_version,
|
|
24
|
+
install_requires=get_dynamic_dependencies(
|
|
25
|
+
use_compatible_release=False, # No upper bound
|
|
26
|
+
use_exact_match=False, # Not exact match
|
|
27
|
+
),
|
|
28
|
+
)
|