powerbi-mcp 0.1.0__tar.gz → 0.1.2__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.
Files changed (54) hide show
  1. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.gitignore +3 -1
  2. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/CLAUDE.md +6 -4
  3. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/DEVELOPER_GUIDE.md +41 -28
  4. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/PKG-INFO +3 -1
  5. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/README.md +2 -0
  6. powerbi_mcp-0.1.2/powerbi_mcp/__init__.py +25 -0
  7. powerbi_mcp-0.1.2/powerbi_mcp/__main__.py +12 -0
  8. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/server.py +0 -12
  9. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/pyproject.toml +4 -3
  10. powerbi_mcp-0.1.2/server.json +44 -0
  11. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/uv.lock +1 -1
  12. powerbi_mcp-0.1.0/src/__init__.py +0 -13
  13. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/settings.json +0 -0
  14. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/claude-md-improver/SKILL.md +0 -0
  15. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/claude-md-improver/references/quality-criteria.md +0 -0
  16. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/claude-md-improver/references/templates.md +0 -0
  17. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/claude-md-improver/references/update-guidelines.md +0 -0
  18. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/LICENSE.txt +0 -0
  19. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/SKILL.md +0 -0
  20. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/reference/evaluation.md +0 -0
  21. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/reference/mcp_best_practices.md +0 -0
  22. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/reference/node_mcp_server.md +0 -0
  23. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/reference/python_mcp_server.md +0 -0
  24. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/scripts/connections.py +0 -0
  25. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/scripts/evaluation.py +0 -0
  26. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/scripts/example_evaluation.xml +0 -0
  27. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/mcp-builder/scripts/requirements.txt +0 -0
  28. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/powerbi-expert/SKILL.md +0 -0
  29. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/powerbi-mcp-server-tester/SKILL.md +0 -0
  30. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/LICENSE.txt +0 -0
  31. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/SKILL.md +0 -0
  32. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/references/output-patterns.md +0 -0
  33. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/references/workflows.md +0 -0
  34. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/scripts/init_skill.py +0 -0
  35. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/scripts/package_skill.py +0 -0
  36. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/skill-creator/scripts/quick_validate.py +0 -0
  37. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.claude/skills/uv-package-manager/SKILL.md +0 -0
  38. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.env.example +0 -0
  39. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.github/workflows/publish-to-pypi.yml +0 -0
  40. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.mcp.json +0 -0
  41. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/.python-version +0 -0
  42. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/LICENSE +0 -0
  43. {powerbi_mcp-0.1.0 → powerbi_mcp-0.1.2}/opencode.json +0 -0
  44. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/auth.py +0 -0
  45. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/client.py +0 -0
  46. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/constants.py +0 -0
  47. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/exceptions.py +0 -0
  48. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/formatters.py +0 -0
  49. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/models.py +0 -0
  50. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/tools/__init__.py +0 -0
  51. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/tools/datasets.py +0 -0
  52. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/tools/queries.py +0 -0
  53. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/tools/workspaces.py +0 -0
  54. {powerbi_mcp-0.1.0/src → powerbi_mcp-0.1.2/powerbi_mcp}/validation.py +0 -0
@@ -13,4 +13,6 @@ wheels/
13
13
 
14
14
  # Agent files
15
15
  .playwright-mcp/
16
- .ref/
16
+ .ref/
17
+ .mcpregistry_registry_token
18
+ .mcpregistry_github_token
@@ -13,8 +13,10 @@ Keep both `README.md` and `DEVELOPER_GUIDE.md` updated with any user-facing or a
13
13
  Modular MCP server organized by separation of concerns (~2120 total LOC across 13 files):
14
14
 
15
15
  ```
16
- src/
17
- ├── server.py # Entry point, FastMCP initialization
16
+ powerbi_mcp/
17
+ ├── __init__.py # Main entry point (contains main())
18
+ ├── __main__.py # Module execution support
19
+ ├── server.py # FastMCP initialization
18
20
  ├── auth.py # OAuth2 authentication, token management
19
21
  ├── client.py # PowerBI REST API client
20
22
  ├── constants.py # Configuration values (URLs, timeouts, limits)
@@ -35,7 +37,7 @@ src/
35
37
  ```bash
36
38
  # Package manager: uv (with .venv virtual environment)
37
39
  uv sync # Install dependencies
38
- uv run run-server # Run server (calls src.server:main)
40
+ uv run run-server # Run server (calls powerbi_mcp:main)
39
41
 
40
42
  # Development testing with MCP Inspector
41
43
  npx @modelcontextprotocol/inspector uv --directory . run run-server
@@ -59,7 +61,7 @@ npx @modelcontextprotocol/inspector uv --directory . run run-server
59
61
 
60
62
  8. **PowerBI Expertise**: Use the `powerbi-expert` skill for DAX, M language, and data modeling questions.
61
63
 
62
- 9. **Version Bumping**: Check if version in `pyproject.toml` needs updating (currently 0.0.1).
64
+ 9. **Version Bumping**: Check if version in `pyproject.toml` needs updating (currently 0.1.1).
63
65
 
64
66
  10. **Commit Message**: Do not add "Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com" to commit message.
65
67
 
@@ -98,14 +98,17 @@ When a user runs the server, the following chain of calls happens:
98
98
  2. **pyproject.toml** defines the `run-server` script:
99
99
  ```toml
100
100
  [project.scripts]
101
- run-server = "src.server:main"
101
+ run-server = "powerbi_mcp:main"
102
102
  ```
103
103
 
104
- 3. **src/server.py** contains the `main()` function:
104
+ 3. **powerbi_mcp/__init__.py** contains the `main()` function:
105
105
  ```python
106
106
  def main():
107
107
  """Main entry point for the PowerBI MCP server"""
108
108
  import os
109
+ import logging
110
+
111
+ logger = logging.getLogger(__name__)
109
112
  transport = os.getenv("MCP_TRANSPORT", "stdio")
110
113
  logger.info(f"Starting PowerBI MCP Server via transport: {transport}")
111
114
  mcp.run(transport=transport)
@@ -117,7 +120,7 @@ When a user runs the server, the following chain of calls happens:
117
120
 
118
121
  ### How .env Files Are Loaded
119
122
 
120
- The server loads environment variables from a `.env` file using this logic in `src/auth.py`:
123
+ The server loads environment variables from a `.env` file using this logic in `powerbi_mcp/auth.py`:
121
124
 
122
125
  ```python
123
126
  from dotenv import load_dotenv
@@ -196,14 +199,14 @@ Test the server with actual MCP clients:
196
199
  ### Changing Configuration Values
197
200
 
198
201
  **API Endpoints:**
199
- Edit `src/constants.py`:
202
+ Edit `powerbi_mcp/constants.py`:
200
203
  ```python
201
204
  API_BASE_URL = "https://api.powerbi.com/v1.0/myorg"
202
205
  AUTH_URL_TEMPLATE = "https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
203
206
  ```
204
207
 
205
208
  **Timeouts:**
206
- Edit `src/constants.py`:
209
+ Edit `powerbi_mcp/constants.py`:
207
210
  ```python
208
211
  AUTH_TIMEOUT = 30.0 # Authentication request timeout
209
212
  API_TIMEOUT = 60.0 # API request timeout
@@ -211,7 +214,7 @@ TOKEN_REFRESH_BUFFER = 60 # Refresh token N seconds before expiry
211
214
  ```
212
215
 
213
216
  **Response Limits:**
214
- Edit `src/constants.py`:
217
+ Edit `powerbi_mcp/constants.py`:
215
218
  ```python
216
219
  CHARACTER_LIMIT = 25000 # Max characters in response
217
220
  MAX_ROWS_DISPLAY = 100 # Max rows shown in query results
@@ -223,7 +226,7 @@ MIN_WORKSPACES_TOP = 1 # Min workspaces per request
223
226
 
224
227
  ### Improving Error Messages
225
228
 
226
- All HTTP error handling is in **one place**: `src/exceptions.py`
229
+ All HTTP error handling is in **one place**: `powerbi_mcp/exceptions.py`
227
230
 
228
231
  **Example: Improve 404 error message**
229
232
  ```python
@@ -252,20 +255,20 @@ elif status_code == 404:
252
255
  ### Adding New Validation Rules
253
256
 
254
257
  **For DAX queries:**
255
- Edit `src/validation.py`:
258
+ Edit `powerbi_mcp/validation.py`:
256
259
  ```python
257
260
  def validate_dax_query(query: str) -> None:
258
261
  """Validate DAX query"""
259
262
  if not query.strip().upper().startswith("EVALUATE"):
260
263
  raise ValueError("Query must start with EVALUATE")
261
-
264
+
262
265
  # Add new validation here:
263
266
  if len(query) > 10000:
264
267
  raise ValueError("Query too long (max 10000 characters)")
265
268
  ```
266
269
 
267
270
  **For other validations:**
268
- Add new functions to `src/validation.py`:
271
+ Add new functions to `powerbi_mcp/validation.py`:
269
272
  ```python
270
273
  def validate_workspace_id(workspace_id: str) -> None:
271
274
  """Validate workspace ID format"""
@@ -286,7 +289,7 @@ validate_workspace_id(workspace_id)
286
289
 
287
290
  **Example: Add "Reports" formatter**
288
291
 
289
- 1. Create detail formatter in `src/formatters.py`:
292
+ 1. Create detail formatter in `powerbi_mcp/formatters.py`:
290
293
  ```python
291
294
  def _format_report_details(report: dict[str, Any]) -> list[str]:
292
295
  """Format detailed fields for a report"""
@@ -318,7 +321,7 @@ That's it! The generic `_format_items_markdown()` handles:
318
321
 
319
322
  ### Adding Custom Exception Types
320
323
 
321
- Edit `src/exceptions.py`:
324
+ Edit `powerbi_mcp/exceptions.py`:
322
325
 
323
326
  ```python
324
327
  class RateLimitError(APIError):
@@ -345,14 +348,17 @@ elif status_code == 429:
345
348
 
346
349
  | Module | Responsibility | What to Put Here |
347
350
  |--------|---------------|------------------|
348
- | `constants.py` | Configuration values | API URLs, timeouts, limits, any hardcoded value |
349
- | `validation.py` | Input validation | Validation functions that are used in multiple places |
350
- | `exceptions.py` | Error handling | Custom exceptions, HTTP error mapping |
351
- | `client.py` | API client | PowerBI REST API interactions only |
352
- | `auth.py` | Authentication | OAuth2 flow, token management |
353
- | `formatters.py` | Response formatting | Markdown/JSON formatters |
354
- | `models.py` | Data models | Pydantic models for request/response |
355
- | `tools/*.py` | MCP tools | Tool definitions, tool-specific logic |
351
+ | `powerbi_mcp/__init__.py` | Entry point | Main function for server startup |
352
+ | `powerbi_mcp/__main__.py` | Module execution | Enables `python -m powerbi_mcp` |
353
+ | `powerbi_mcp/server.py` | FastMCP initialization | Server setup and tool registration |
354
+ | `powerbi_mcp/constants.py` | Configuration values | API URLs, timeouts, limits, any hardcoded value |
355
+ | `powerbi_mcp/validation.py` | Input validation | Validation functions that are used in multiple places |
356
+ | `powerbi_mcp/exceptions.py` | Error handling | Custom exceptions, HTTP error mapping |
357
+ | `powerbi_mcp/client.py` | API client | PowerBI REST API interactions only |
358
+ | `powerbi_mcp/auth.py` | Authentication | OAuth2 flow, token management |
359
+ | `powerbi_mcp/formatters.py` | Response formatting | Markdown/JSON formatters |
360
+ | `powerbi_mcp/models.py` | Data models | Pydantic models for request/response |
361
+ | `powerbi_mcp/tools/*.py` | MCP tools | Tool definitions, tool-specific logic |
356
362
 
357
363
  ---
358
364
 
@@ -373,6 +379,13 @@ from .validation import validate_dax_query
373
379
  from .exceptions import handle_http_error, PowerBIError, APIError
374
380
  ```
375
381
 
382
+ **For external imports or testing, use absolute imports:**
383
+ ```python
384
+ # For external imports or testing, use absolute imports:
385
+ from powerbi_mcp.constants import API_BASE_URL
386
+ from powerbi_mcp.validation import validate_dax_query
387
+ ```
388
+
376
389
  **Avoid circular imports:**
377
390
  - ✅ `constants.py` has no imports from other modules
378
391
  - ✅ `validation.py` has no imports from other modules
@@ -386,13 +399,13 @@ from .exceptions import handle_http_error, PowerBIError, APIError
386
399
 
387
400
  **Test constants:**
388
401
  ```python
389
- from src.constants import API_TIMEOUT
402
+ from powerbi_mcp.constants import API_TIMEOUT
390
403
  assert API_TIMEOUT == 60.0
391
404
  ```
392
405
 
393
406
  **Test validation:**
394
407
  ```python
395
- from src.validation import validate_dax_query
408
+ from powerbi_mcp.validation import validate_dax_query
396
409
  import pytest
397
410
 
398
411
  # Valid query
@@ -405,7 +418,7 @@ with pytest.raises(ValueError):
405
418
 
406
419
  **Test error handling:**
407
420
  ```python
408
- from src.exceptions import handle_http_error
421
+ from powerbi_mcp.exceptions import handle_http_error
409
422
  import httpx
410
423
 
411
424
  # Mock HTTP 404 error
@@ -417,8 +430,8 @@ assert "404" in str(exception)
417
430
 
418
431
  **Test formatters:**
419
432
  ```python
420
- from src.formatters import format_workspaces_markdown
421
- from src.models import DetailLevel
433
+ from powerbi_mcp.formatters import format_workspaces_markdown
434
+ from powerbi_mcp.models import DetailLevel
422
435
 
423
436
  workspaces = [{"id": "123", "name": "Test WS"}]
424
437
  output = format_workspaces_markdown(workspaces, DetailLevel.CONCISE)
@@ -686,9 +699,9 @@ test: add integration tests for datasets
686
699
 
687
700
  3. **Make changes**
688
701
  - Follow the module responsibilities (see above)
689
- - Add constants to `constants.py`
690
- - Add validation to `validation.py`
691
- - Update error handling in `exceptions.py`
702
+ - Add constants to `powerbi_mcp/constants.py`
703
+ - Add validation to `powerbi_mcp/validation.py`
704
+ - Update error handling in `powerbi_mcp/exceptions.py`
692
705
  - Implement features in appropriate modules
693
706
 
694
707
  4. **Test changes**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: powerbi-mcp
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Model Context Protocol server for PowerBI REST API integration
5
5
  Project-URL: Homepage, https://github.com/gurvinder-dhillon/powerbi-mcp
6
6
  Project-URL: Documentation, https://github.com/gurvinder-dhillon/powerbi-mcp#readme
@@ -31,6 +31,8 @@ Description-Content-Type: text/markdown
31
31
  [![Python Versions](https://img.shields.io/pypi/pyversions/powerbi-mcp.svg)](https://pypi.org/project/powerbi-mcp/)
32
32
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
33
33
 
34
+ <!-- mcp-name: io.github.gurvinder-dhillon/powerbi-mcp -->
35
+
34
36
  A Model Context Protocol (MCP) server that provides tools for interacting with PowerBI REST APIs. This server enables AI assistants like Claude to query PowerBI workspaces, datasets, and execute DAX queries.
35
37
 
36
38
  > [!WARNING]
@@ -4,6 +4,8 @@
4
4
  [![Python Versions](https://img.shields.io/pypi/pyversions/powerbi-mcp.svg)](https://pypi.org/project/powerbi-mcp/)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
+ <!-- mcp-name: io.github.gurvinder-dhillon/powerbi-mcp -->
8
+
7
9
  A Model Context Protocol (MCP) server that provides tools for interacting with PowerBI REST APIs. This server enables AI assistants like Claude to query PowerBI workspaces, datasets, and execute DAX queries.
8
10
 
9
11
  > [!WARNING]
@@ -0,0 +1,25 @@
1
+ """
2
+ PowerBI MCP Server
3
+
4
+ A Model Context Protocol server for interacting with PowerBI REST API.
5
+ """
6
+
7
+ __version__ = "0.1.2"
8
+ __author__ = "Gurvinder Dhillon"
9
+ __description__ = "MCP server for PowerBI REST API interactions & run DAX queries."
10
+
11
+ from .server import mcp
12
+
13
+
14
+ def main():
15
+ """Main entry point for the PowerBI MCP server"""
16
+ import os
17
+ import logging
18
+
19
+ logger = logging.getLogger(__name__)
20
+ transport = os.getenv("MCP_TRANSPORT", "stdio")
21
+ logger.info(f"Starting PowerBI MCP Server via transport: {transport}")
22
+ mcp.run(transport=transport)
23
+
24
+
25
+ __all__ = ["mcp", "main"]
@@ -0,0 +1,12 @@
1
+ """
2
+ Entry point for running powerbi-mcp as a module.
3
+
4
+ This allows the package to be run with:
5
+ - python -m powerbi_mcp
6
+ - uvx powerbi-mcp
7
+ """
8
+
9
+ from powerbi_mcp import main
10
+
11
+ if __name__ == "__main__":
12
+ main()
@@ -76,15 +76,3 @@ register_workspace_tools(mcp)
76
76
  register_dataset_tools(mcp)
77
77
  register_query_tools(mcp)
78
78
  logger.info("All tools registered")
79
-
80
-
81
- def main():
82
- """Main entry point for the PowerBI MCP server"""
83
- import os
84
- transport = os.getenv("MCP_TRANSPORT", "stdio")
85
- logger.info(f"Starting PowerBI MCP Server via transport: {transport}")
86
- mcp.run(transport=transport)
87
-
88
-
89
- if __name__ == "__main__":
90
- main()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "powerbi-mcp"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "Model Context Protocol server for PowerBI REST API integration"
5
5
  readme = { file = "README.md", content-type = "text/markdown" }
6
6
  requires-python = ">=3.11"
@@ -26,14 +26,15 @@ dependencies = [
26
26
  ]
27
27
 
28
28
  [project.scripts]
29
- run-server = "src.server:main"
29
+ powerbi-mcp = "powerbi_mcp:main"
30
+ run-server = "powerbi_mcp:main"
30
31
 
31
32
  [build-system]
32
33
  requires = ["hatchling"]
33
34
  build-backend = "hatchling.build"
34
35
 
35
36
  [tool.hatch.build.targets.wheel]
36
- packages = ["src"]
37
+ packages = ["powerbi_mcp"]
37
38
 
38
39
  [project.urls]
39
40
  Homepage = "https://github.com/gurvinder-dhillon/powerbi-mcp"
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.gurvinder-dhillon/powerbi-mcp",
4
+ "title": "PowerBI MCP Server",
5
+ "description": "MCP server for PowerBI REST API integration. Query workspaces, datasets, and execute DAX queries through natural language.",
6
+ "repository": {
7
+ "url": "https://github.com/gurvinder-dhillon/powerbi-mcp",
8
+ "source": "github"
9
+ },
10
+ "version": "0.1.2",
11
+ "packages": [
12
+ {
13
+ "registryType": "pypi",
14
+ "identifier": "powerbi-mcp",
15
+ "version": "0.1.2",
16
+ "transport": {
17
+ "type": "stdio"
18
+ },
19
+ "environmentVariables": [
20
+ {
21
+ "name": "POWERBI_TENANT_ID",
22
+ "description": "Azure AD Tenant ID for PowerBI authentication",
23
+ "isRequired": true,
24
+ "format": "string",
25
+ "isSecret": false
26
+ },
27
+ {
28
+ "name": "POWERBI_CLIENT_ID",
29
+ "description": "Azure AD Application (Client) ID with PowerBI API access",
30
+ "isRequired": true,
31
+ "format": "string",
32
+ "isSecret": false
33
+ },
34
+ {
35
+ "name": "POWERBI_CLIENT_SECRET",
36
+ "description": "Azure AD Client Secret for service principal authentication",
37
+ "isRequired": true,
38
+ "format": "string",
39
+ "isSecret": true
40
+ }
41
+ ]
42
+ }
43
+ ]
44
+ }
@@ -301,7 +301,7 @@ wheels = [
301
301
 
302
302
  [[package]]
303
303
  name = "powerbi-mcp"
304
- version = "0.0.1"
304
+ version = "0.1.1"
305
305
  source = { editable = "." }
306
306
  dependencies = [
307
307
  { name = "httpx" },
@@ -1,13 +0,0 @@
1
- """
2
- PowerBI MCP Server
3
-
4
- A Model Context Protocol server for interacting with PowerBI REST API.
5
- """
6
-
7
- __version__ = "0.1.0"
8
- __author__ = "PowerBI MCP Contributors"
9
- __description__ = "MCP server for PowerBI REST API integration"
10
-
11
- from .server import mcp
12
-
13
- __all__ = ["mcp"]
File without changes
File without changes
File without changes
File without changes
File without changes