awslabs.git-repo-research-mcp-server 0.0.2__tar.gz → 1.0.1__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.
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/PKG-INFO +3 -3
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/README.md +2 -2
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/server.py +4 -18
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/pyproject.toml +1 -1
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_rest_github_search.py +6 -6
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_server.py +0 -11
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/uv.lock +1215 -1215
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/.gitignore +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/.pre-commit-config.yaml +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/.python-version +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/CHANGELOG.md +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/LICENSE +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/NOTICE +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/__init__.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/__init__.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/defaults.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/embeddings.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/github_search.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/indexer.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/models.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/repository.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/search.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/awslabs/git_repo_research_mcp_server/utils.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/run_tests.sh +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/__init__.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/conftest.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_errors_repository.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_github_search_edge_cases.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_graphql_github_search.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_local_repository.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_repository_utils.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_search.py +0 -0
- {awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/tests/test_url_repository.py +0 -0
{awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: awslabs.git-repo-research-mcp-server
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: An AWS Labs Model Context Protocol (MCP) server for researching git repositories
|
|
5
5
|
Project-URL: Homepage, https://awslabs.github.io/mcp/
|
|
6
6
|
Project-URL: Documentation, https://awslabs.github.io/mcp/servers/git-repo-research-mcp-server/
|
|
@@ -124,12 +124,12 @@ search_research_repository(
|
|
|
124
124
|
) -> Dict
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
###
|
|
127
|
+
### search_repositories_on_github
|
|
128
128
|
|
|
129
129
|
Searches for GitHub repositories based on keywords, scoped to AWS organizations.
|
|
130
130
|
|
|
131
131
|
```python
|
|
132
|
-
|
|
132
|
+
search_repositories_on_github(
|
|
133
133
|
keywords: List[str],
|
|
134
134
|
num_results: int = 5
|
|
135
135
|
) -> Dict
|
{awslabs_git_repo_research_mcp_server-0.0.2 → awslabs_git_repo_research_mcp_server-1.0.1}/README.md
RENAMED
|
@@ -87,12 +87,12 @@ search_research_repository(
|
|
|
87
87
|
) -> Dict
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
###
|
|
90
|
+
### search_repositories_on_github
|
|
91
91
|
|
|
92
92
|
Searches for GitHub repositories based on keywords, scoped to AWS organizations.
|
|
93
93
|
|
|
94
94
|
```python
|
|
95
|
-
|
|
95
|
+
search_repositories_on_github(
|
|
96
96
|
keywords: List[str],
|
|
97
97
|
num_results: int = 5
|
|
98
98
|
) -> Dict
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
# and limitations under the License.
|
|
11
11
|
"""awslabs git-repo-research MCP Server implementation."""
|
|
12
12
|
|
|
13
|
-
import argparse
|
|
14
13
|
import json
|
|
15
14
|
import mimetypes
|
|
16
15
|
import os
|
|
@@ -76,7 +75,7 @@ Perform semantic search within an indexed repository.
|
|
|
76
75
|
### delete_research_repository
|
|
77
76
|
Delete an indexed repository.
|
|
78
77
|
|
|
79
|
-
###
|
|
78
|
+
### search_repositories_on_github
|
|
80
79
|
Search for GitHub repositories based on keywords, scoped to specific organizations.
|
|
81
80
|
|
|
82
81
|
### access_file
|
|
@@ -148,7 +147,7 @@ delete_research_repository(repository_name_or_path="repo_name")
|
|
|
148
147
|
|
|
149
148
|
### Searching for GitHub Repositories
|
|
150
149
|
```
|
|
151
|
-
|
|
150
|
+
search_repositories_on_github(
|
|
152
151
|
keywords=["serverless", "lambda"],
|
|
153
152
|
num_results=10
|
|
154
153
|
)
|
|
@@ -664,7 +663,7 @@ async def mcp_search_repository(
|
|
|
664
663
|
raise
|
|
665
664
|
|
|
666
665
|
|
|
667
|
-
@mcp.tool(name='
|
|
666
|
+
@mcp.tool(name='search_repositories_on_github')
|
|
668
667
|
async def mcp_search_github_repos(
|
|
669
668
|
ctx: Context,
|
|
670
669
|
keywords: List[str] = Field(description='List of keywords to search for GitHub repositories'),
|
|
@@ -894,20 +893,7 @@ async def mcp_delete_repository(
|
|
|
894
893
|
|
|
895
894
|
def main():
|
|
896
895
|
"""Run the MCP server with CLI argument support."""
|
|
897
|
-
|
|
898
|
-
description='An AWS Labs Model Context Protocol (MCP) server for researching git repositories'
|
|
899
|
-
)
|
|
900
|
-
parser.add_argument('--sse', action='store_true', help='Use SSE transport')
|
|
901
|
-
parser.add_argument('--port', type=int, default=8888, help='Port to run the server on')
|
|
902
|
-
|
|
903
|
-
args = parser.parse_args()
|
|
904
|
-
|
|
905
|
-
# Run server with appropriate transport
|
|
906
|
-
if args.sse:
|
|
907
|
-
mcp.settings.port = args.port
|
|
908
|
-
mcp.run(transport='sse')
|
|
909
|
-
else:
|
|
910
|
-
mcp.run()
|
|
896
|
+
mcp.run()
|
|
911
897
|
|
|
912
898
|
|
|
913
899
|
if __name__ == '__main__':
|
|
@@ -15,7 +15,7 @@ import pytest
|
|
|
15
15
|
|
|
16
16
|
# Import the server functions
|
|
17
17
|
from awslabs.git_repo_research_mcp_server.server import (
|
|
18
|
-
mcp_search_github_repos as
|
|
18
|
+
mcp_search_github_repos as search_repositories_on_github,
|
|
19
19
|
)
|
|
20
20
|
|
|
21
21
|
|
|
@@ -39,7 +39,7 @@ async def test_github_repository_search_live():
|
|
|
39
39
|
|
|
40
40
|
# Test searching for "aws lambda serverless"
|
|
41
41
|
# This should return repositories from AWS organizations related to Lambda and serverless
|
|
42
|
-
search_result = await
|
|
42
|
+
search_result = await search_repositories_on_github(
|
|
43
43
|
ctx, keywords=['aws', 'lambda', 'serverless'], num_results=5
|
|
44
44
|
)
|
|
45
45
|
|
|
@@ -86,7 +86,7 @@ async def test_github_repository_search_no_results_live():
|
|
|
86
86
|
ctx = MockContext()
|
|
87
87
|
|
|
88
88
|
# Test with a very specific query that is unlikely to have repositories
|
|
89
|
-
search_result = await
|
|
89
|
+
search_result = await search_repositories_on_github(
|
|
90
90
|
ctx, keywords=['unlikely123456789', 'nonexistentrepo987654321'], num_results=5
|
|
91
91
|
)
|
|
92
92
|
|
|
@@ -115,12 +115,12 @@ async def test_github_repository_search_with_limit_live():
|
|
|
115
115
|
ctx = MockContext()
|
|
116
116
|
|
|
117
117
|
# Small number of results
|
|
118
|
-
small_result = await
|
|
118
|
+
small_result = await search_repositories_on_github(
|
|
119
119
|
ctx, keywords=['aws', 'dynamodb'], num_results=2
|
|
120
120
|
)
|
|
121
121
|
|
|
122
122
|
# Larger number of results
|
|
123
|
-
large_result = await
|
|
123
|
+
large_result = await search_repositories_on_github(
|
|
124
124
|
ctx, keywords=['aws', 'dynamodb'], num_results=5
|
|
125
125
|
)
|
|
126
126
|
|
|
@@ -151,7 +151,7 @@ async def test_github_repository_order_by_stars_live():
|
|
|
151
151
|
ctx = MockContext()
|
|
152
152
|
|
|
153
153
|
# Search for popular AWS repositories
|
|
154
|
-
search_result = await
|
|
154
|
+
search_result = await search_repositories_on_github(
|
|
155
155
|
ctx, keywords=['aws', 'cdk'], num_results=10
|
|
156
156
|
)
|
|
157
157
|
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
# and limitations under the License.
|
|
11
11
|
"""Comprehensive tests for Git Repository Research MCP Server."""
|
|
12
12
|
|
|
13
|
-
import argparse
|
|
14
13
|
import json
|
|
15
14
|
import os
|
|
16
15
|
import pytest
|
|
@@ -25,7 +24,6 @@ from awslabs.git_repo_research_mcp_server.server import (
|
|
|
25
24
|
access_file_or_directory,
|
|
26
25
|
list_repositories,
|
|
27
26
|
main,
|
|
28
|
-
mcp,
|
|
29
27
|
mcp_access_file,
|
|
30
28
|
mcp_delete_repository,
|
|
31
29
|
mcp_index_repository,
|
|
@@ -734,21 +732,12 @@ async def test_mcp_access_file(test_context):
|
|
|
734
732
|
|
|
735
733
|
def test_main():
|
|
736
734
|
"""Test the main function."""
|
|
737
|
-
# Mock the argparse.ArgumentParser
|
|
738
735
|
with (
|
|
739
|
-
patch('argparse.ArgumentParser.parse_args') as mock_parse_args,
|
|
740
736
|
patch('awslabs.git_repo_research_mcp_server.server.mcp.run') as mock_run,
|
|
741
737
|
):
|
|
742
738
|
# Test with default arguments
|
|
743
|
-
mock_parse_args.return_value = argparse.Namespace(sse=False, port=8888)
|
|
744
739
|
main()
|
|
745
740
|
mock_run.assert_called_once()
|
|
746
741
|
|
|
747
742
|
# Reset mocks
|
|
748
743
|
mock_run.reset_mock()
|
|
749
|
-
|
|
750
|
-
# Test with SSE transport
|
|
751
|
-
mock_parse_args.return_value = argparse.Namespace(sse=True, port=9999)
|
|
752
|
-
main()
|
|
753
|
-
assert mcp.settings.port == 9999, 'Port not set correctly'
|
|
754
|
-
mock_run.assert_called_once_with(transport='sse')
|