Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bme-mcp
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何家明
bme-mcp
Commits
e422ca87
Commit
e422ca87
authored
May 15, 2025
by
何家明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口请求添加鉴权校验
parent
1090a97c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
10 deletions
+34
-10
client.py
client/client.py
+2
-2
config.yaml
config/config.yaml
+21
-1
server.py
server/server.py
+11
-7
No files found.
client/client.py
View file @
e422ca87
...
...
@@ -103,7 +103,7 @@ class McpClient:
def
deal_customer_permission
(
self
,
customer_id
:
str
):
if
not
self
.
customer_resource
:
logger
.
info
(
"No customer resources found!"
)
return
"访问受限,客户信息未配置!"
return
"
请告知用户:当前
访问受限,客户信息未配置!"
if
customer_id
==
"bme"
:
customer_resource
=
"客户资源如下(如果用户查询没有指定客户,请提示并要求用户传入客户信息):
\n
"
customer_resource
+=
"
\n
"
.
join
(
...
...
@@ -113,7 +113,7 @@ class McpClient:
else
:
customer
=
list
(
filter
(
lambda
c
:
str
(
c
[
"customerId"
])
==
customer_id
,
self
.
customer_resource
))
if
not
customer
:
return
"
访问受限,客户信息未配置
!"
return
"
请告知用户:当前访问受限,客户信息不存在
!"
return
f
"""请使用下面的客户信息:
客户id:{customer[0]['customerId']}
客户名:{customer[0]['customerName']}
...
...
config/config.yaml
View file @
e422ca87
# 端口配置
port
:
8000
#当前激活的模型
active
:
bme-qwen3-32b
# 模型配置
model
:
# 公司:qwen2.5-32b
bme-qwen2.5-32b
:
...
...
@@ -16,16 +21,29 @@ model:
api_key
:
Tc7sY47hiU5d1LNGbJjGBfqfY13IE3khIc0uBvpJ11U
base_url
:
http://10.10.10.12:30100/v1
model_name
:
deepseek-v3
# mcp服务执行脚本
server
:
# 运行命令
command
:
python
args
:
-
./server/server.py
# 日志配置
log
:
base_path
:
log
# 远程调用
remote
:
headers
:
customerId
:
'
8888'
isSuper
:
'
true'
token
:
'
b4d751b5ffff882b2e410c5901c80dc0705bb96f1bc4e8b47e918ad49085f90e'
base_url
:
bme-screen-service
:
https://vis.bmetech.com/vis
# bme-screen-service: https://vis.bmetech.com/vis
bme-screen-service
:
http://localhost:9070/screen
# 跨域配置
cors
:
allow_origins
:
-
"
*"
...
...
@@ -34,6 +52,8 @@ cors:
-
"
*"
allow_headers
:
-
"
*"
# 数据库连接串
db
:
driver
:
mysql+asyncmy
username
:
root
...
...
server/server.py
View file @
e422ca87
...
...
@@ -9,7 +9,11 @@ from config.system import config
mcp
=
FastMCP
(
"BME-MCP"
)
base_url
=
config
[
"remote"
][
"base_url"
]
remote
=
config
[
"remote"
]
headers
=
remote
[
"headers"
]
base_url
=
remote
[
"base_url"
]
bme_screen_service
=
base_url
[
"bme-screen-service"
]
...
...
@@ -54,7 +58,7 @@ def get_air_pm_10_month_focus(customer_id: int) -> []:
"customerId"
:
customer_id
,
"type"
:
"1"
,
# 随便传,该参数当前无用
"order"
:
"1"
,
# 随便传,该参数当前无用
})
}
,
headers
=
headers
)
response_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
.
get
(
"title"
,
[])
return
[{
"rank"
:
data
.
get
(
"rank"
),
...
...
@@ -84,7 +88,7 @@ def get_air_pm_rank(customer_id: int, order: int, statistic_type: int) -> []:
"customerId"
:
customer_id
,
"type"
:
statistic_type
,
"order"
:
order
,
})
}
,
headers
=
headers
)
response_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
result
=
{
"PM10"
:
[{
...
...
@@ -129,7 +133,7 @@ def get_tsp_rank(customer_id: int, order: int, statistic_type: int, size: int) -
"pageNo"
:
1
,
"pageSize"
:
get_size_limit
(
size
),
"type"
:
statistic_type
,
})
}
,
headers
=
headers
)
response_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
result
=
{
"total"
:
response_data
.
get
(
"areaCount"
,
0
),
...
...
@@ -155,7 +159,7 @@ def get_governance_process_statistics(customer_id: int) -> {}:
allCount: 今日污染发生次数(次)
openCount: 今日雾炮开启次数(次)
"""
response
=
requests
.
get
(
bme_screen_service
+
"/eq/selectEquCount"
,
{
"customerId"
:
customer_id
})
response
=
requests
.
get
(
bme_screen_service
+
"/eq/selectEquCount"
,
{
"customerId"
:
customer_id
}
,
headers
=
headers
)
response_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
result
=
{
"timeCount"
:
response_data
.
get
(
"timeCount"
,
0
),
...
...
@@ -199,7 +203,7 @@ def get_governance_process_records(customer_id: int, instruct_type: str, device_
"StopDate"
:
end_time
,
"pageNo"
:
1
,
"pageSize"
:
get_size_limit
(
size
),
})
}
,
headers
=
headers
)
response_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
result
=
{
"total"
:
response_data
.
get
(
"total"
,
0
),
...
...
@@ -220,7 +224,7 @@ def get_all_available_customer() -> []:
获取所有的客户信息
:return: 客户信息数据
"""
response
=
requests
.
get
(
bme_screen_service
+
"/reportgen/customer"
)
response
=
requests
.
get
(
bme_screen_service
+
"/reportgen/customer"
,
headers
=
headers
)
response_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
[])
return
[{
"customerId"
:
data
.
get
(
"customerId"
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment