awslabs.git-repo-research-mcp-server 1.0.0__tar.gz → 1.0.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.
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/PKG-INFO +3 -3
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/README.md +2 -2
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/search.py +1 -1
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/server.py +3 -3
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/pyproject.toml +1 -1
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_rest_github_search.py +6 -6
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_search.py +3 -3
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/uv.lock +1215 -1215
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/.gitignore +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/.pre-commit-config.yaml +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/.python-version +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/CHANGELOG.md +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/LICENSE +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/NOTICE +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/__init__.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/__init__.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/defaults.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/embeddings.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/github_search.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/indexer.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/models.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/repository.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/awslabs/git_repo_research_mcp_server/utils.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/run_tests.sh +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/__init__.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/conftest.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_errors_repository.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_github_search_edge_cases.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_graphql_github_search.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_local_repository.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_repository_utils.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_server.py +0 -0
- {awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/tests/test_url_repository.py +0 -0
{awslabs_git_repo_research_mcp_server-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: awslabs.git-repo-research-mcp-server
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
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-1.0.0 → awslabs_git_repo_research_mcp_server-1.0.2}/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
|
|
@@ -210,7 +210,7 @@ class RepositorySearcher:
|
|
|
210
210
|
index_path = self.repository_indexer._get_index_path(repository_name)
|
|
211
211
|
|
|
212
212
|
# Load the index and chunk map
|
|
213
|
-
vector_store = self.repository_indexer.load_index_without_pickle(
|
|
213
|
+
vector_store = self.repository_indexer.load_index_without_pickle(index_path)
|
|
214
214
|
if vector_store is None:
|
|
215
215
|
logger.error(f'Index or chunk map not found for repository {repository_name}')
|
|
216
216
|
# Set repository_directory even if index is not found
|
|
@@ -75,7 +75,7 @@ Perform semantic search within an indexed repository.
|
|
|
75
75
|
### delete_research_repository
|
|
76
76
|
Delete an indexed repository.
|
|
77
77
|
|
|
78
|
-
###
|
|
78
|
+
### search_repositories_on_github
|
|
79
79
|
Search for GitHub repositories based on keywords, scoped to specific organizations.
|
|
80
80
|
|
|
81
81
|
### access_file
|
|
@@ -147,7 +147,7 @@ delete_research_repository(repository_name_or_path="repo_name")
|
|
|
147
147
|
|
|
148
148
|
### Searching for GitHub Repositories
|
|
149
149
|
```
|
|
150
|
-
|
|
150
|
+
search_repositories_on_github(
|
|
151
151
|
keywords=["serverless", "lambda"],
|
|
152
152
|
num_results=10
|
|
153
153
|
)
|
|
@@ -663,7 +663,7 @@ async def mcp_search_repository(
|
|
|
663
663
|
raise
|
|
664
664
|
|
|
665
665
|
|
|
666
|
-
@mcp.tool(name='
|
|
666
|
+
@mcp.tool(name='search_repositories_on_github')
|
|
667
667
|
async def mcp_search_github_repos(
|
|
668
668
|
ctx: Context,
|
|
669
669
|
keywords: List[str] = Field(description='List of keywords to search for GitHub repositories'),
|
|
@@ -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
|
|
|
@@ -330,7 +330,7 @@ def test_search_with_repository_name():
|
|
|
330
330
|
|
|
331
331
|
# Verify the mock calls
|
|
332
332
|
mock_indexer._get_index_path.assert_called_once_with('test_repo')
|
|
333
|
-
mock_indexer.load_index_without_pickle.assert_called_once_with('test_repo')
|
|
333
|
+
mock_indexer.load_index_without_pickle.assert_called_once_with('/tmp/index/test_repo')
|
|
334
334
|
mock_vector_store.similarity_search.assert_called_once_with('test query', k=10)
|
|
335
335
|
|
|
336
336
|
|
|
@@ -387,7 +387,7 @@ def test_search_with_directory_path():
|
|
|
387
387
|
assert result.results[0].score == 1.0
|
|
388
388
|
|
|
389
389
|
# Verify the mock calls
|
|
390
|
-
mock_indexer.load_index_without_pickle.assert_called_once_with('test_repo')
|
|
390
|
+
mock_indexer.load_index_without_pickle.assert_called_once_with('/tmp/index/test_repo')
|
|
391
391
|
|
|
392
392
|
|
|
393
393
|
def test_search_with_similarity_search_with_score_fallback():
|
|
@@ -446,7 +446,7 @@ def test_search_with_similarity_search_with_score_fallback():
|
|
|
446
446
|
|
|
447
447
|
# Verify the mock calls
|
|
448
448
|
mock_indexer._get_index_path.assert_called_once_with('test_repo')
|
|
449
|
-
mock_indexer.load_index_without_pickle.assert_called_once_with('test_repo')
|
|
449
|
+
mock_indexer.load_index_without_pickle.assert_called_once_with('/tmp/index/test_repo')
|
|
450
450
|
mock_vector_store.similarity_search.assert_called_once_with('test query', k=10)
|
|
451
451
|
mock_vector_store.similarity_search_with_score.assert_called_once_with('test query', k=10)
|
|
452
452
|
mock_logger_error.assert_called_once()
|